ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 13782671637

[求助] 为C列自定义函数的代码运算提速

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-25 08:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
13782671637 发表于 2018-6-25 00:07
老师:Cells(Z, y).Resize(29996) = ""   您确定这样修改?这样,最大行号会不会固定不变,而不是可以自 ...

请参考楼下附件

TA的精华主题

TA的得分主题

发表于 2018-6-25 08:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 YZC51 于 2018-6-25 08:19 编辑

请参考附件
为代码计算提速-窗体固定位置-3.641.rar (199 KB, 下载次数: 4)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-6-25 08:19 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-25 15:58 | 显示全部楼层
本帖最后由 13782671637 于 2018-6-25 16:00 编辑
YZC51 发表于 2018-6-25 08:19
142楼附件已经更新

老师:我需要将代码复制粘贴到其它许多工作簿里使用。请问:     1.sub过程能够像自定义函数一样,加载宏后应用于所有需要此代码的工作簿吗?
     2.http://club.excelhome.net/forum. ... 1419664&pid=9562221 里最后确定的代码是下面这个吗


Sub yzc51()
    Dim brr(), sr()
   ' UserForm1.Show 0
    If UserForm1.Visible = True Then Unload UserForm1
    n = Sheet2.TextBox3
    x = Asc(Sheet2.TextBox1) - 64
    y = Asc(Sheet2.TextBox2) - 64
    Z = 5
'    m = Cells(Rows.Count, 1).End(3).Row - 4
    m = Cells(n, x).End(3).Row - 4
    If m < 5 Then m = n - 4
    If m > n - 4 Then m = n - 4
    yy = Asc(Sheet2.TextBox4) - 64
    mm = Sheet2.TextBox5


    Cells(Z, yy).Resize(mm) = ""
    Cells(Z, y).Resize(m) = ""
   
'    MsgBox "开始计算..."

    tms = Timer
    Columns(y).NumberFormatLocal = "@"
'    m = Cells(Rows.Count, x).End(3).Row - Z + 1
    ar = Cells(Z, x).Resize(m)
    ReDim sr(1 To m, 1 To 1)
    ReDim brr(0 To 2)
    For i = 1 To m
        t = ar(i, 1): t1 = Left(t, 1)
        brr(t1) = brr(t1) + 1: If brr(t1) = 1 Then k1 = k1 + 1
        If k1 = 2 Then k1 = i: Exit For
    Next
    s1 = 3 - Left(ar(1, 1), 1) - Left(ar(k1, 1), 1)
    ReDim brr(0 To 2)
    For i = 1 To m
        t = ar(i, 1):  t2 = Right(t, 1)
        brr(t2) = brr(t2) + 1: If brr(t2) = 1 Then k2 = k2 + 1
        If k2 = 2 Then k2 = i: Exit For
    Next
    s2 = 3 - Right(ar(1, 1), 1) - Right(ar(k2, 1), 1)
    s = s1 & s2
    If k1 > k2 Then k0 = k1 Else k0 = k2
    For i = k0 To m
        t = ar(i - 1, 1): t11 = Left(t, 1): t12 = Right(t, 1)
        t = ar(i, 1): t21 = Left(t, 1): t22 = Right(t, 1)
        
        On Error GoTo JS


        If t11 = t21 Then s1 = Left(s, 1) Else s1 = 3 - t11 - t21
        If t12 = t22 Then s2 = Right(s, 1) Else s2 = 3 - t12 - t22
        s = s1 & s2
        sr(i, 1) = s
    Next
JS:
    Cells(Z, y).Resize(m) = sr
    MsgBox Format(Timer - tms, "0.000s")
    Debug.Print m
End Sub

  3.怎样在其他工作簿里插入和制作 选择框?  希望一一告知。
20180625155003.png

TA的精华主题

TA的得分主题

发表于 2018-6-25 20:17 | 显示全部楼层

你去饭店,坐下来。

“服务员,给我来份宫保鸡丁!”

“好嘞!”

——————这叫原始需求


大厨做到一半。

“服务员,菜里不要放肉。”

“不放肉怎么做啊?”

“不放肉就行了,其它按正常程序做,不就行了,难吗?”

“好的您稍等”

——————中途需求变更


厨房:

大厨:“你大爷,我肉都回锅了”

服务员:“顾客非要要求的嘛,你把肉挑出来不就行了吗”

大厨:“行你大爷”

然而还是一点点挑出来了

——————改动太大,部分重构


餐厅:

“服务员,菜里能给我加点腐竹吗?”

“行,这个应该简单。”

——————低估改动成本


厨房:

大厨:“你TMD,不知道腐竹得提前泡水?炒到一半才说?跟他说,想吃腐竹就多等半天”

服务员:“啊你怎么不早说?”

大厨:“早说你MLGB我怎么知道他要往宫保鸡丁里放腐竹”

然而还是去泡腐竹了

——————新需求引入了新研发成本


餐厅:

“服务员,还是把肉加回去吧”

“您不是刚说不要肉吗”

“现在又想要了”

“…好的您稍等”

——————某一功能点摇摆不定


厨房:

大厨:“日你啊,菜都炒过火了你让我放肉?还好肉我没扔”

服务员:“客户提的要求你日我干嘛?”

大厨:“你就不能拒绝他啊?啊?”

服务员:“人家是客户嘛。”

——————甲方是大爷


餐厅:

“服务员!服务员!”

“来了来了,你好?”

“怎么这么半天啊?”

“稍等我给您催催啊”

——————改动开始导致工期延误


厨房:

大厨:“催你M催,腐竹没泡好,我还得重新放油,他要想吃老的也行,没法保质保量”

——————开发者请求重新排期


餐厅:

服务员:“抱歉,加腐竹的话得多等半天,您别着急哈”

“我靠要等那么久?我现在就要吃,你们能快点吗?”

“行…您稍等”

——————甲方催活


厨房:

大厨:“我日他仙人板板,中途改需求又想按期交付,逗我玩呢?”

服务员:“那我问问,要不让他们换个菜?”

大厨:“再换我就死了”

——————开发者开始和中间人pk


餐厅:

“服务员,这样吧,腐竹不要了,换成蒜毫能快点吗?对了,顺便加点番茄酱”

——————因工期过长再次改动需求


厨房:

大厨:“我日了狗啊,你TM不知道蒜毫也得焯水啊?还有你让我怎么往热菜里放番茄酱啊??”

服务员:“焯水也比等腐竹强吧,番茄酱往里一倒不就行了吗?很难吗?”

大厨:“草。腐竹我还得接着泡,万一这孙子一会又想要了呢。”

——————频繁改动开始导致大量冗余


餐厅:

“服务员,菜里加茄丁了没有?我去其它饭店吃可都是有茄丁的”

“好好好您稍等您稍等”

——————奇葩需求


厨房:

大厨:“我去他二大爷他吃的是斯里兰卡三流技校炒的宫保鸡丁吗?宫保鸡丁里放茄丁??”

服务员:“茄丁抄好了扔里边不就行了吗?”

大厨:“那TM还能叫菜吗?哪个系的?”

服务员:“客户要,你就给炒了吧。”

大厨:“MB你顺道问问他腐竹还要不要,我这盆腐竹还占着地方呢不要我就扔了”

——————奇葩你也得做


餐厅:

“服务员,还要多久能好啊”

“很快,很快…”

“再给我来杯西瓜汁。”

“…好”

“我再等10分钟,还不好我就走了,反正还没给钱。”

“很快,很快…”

——————黑暗前的最后黎明


10分钟后

“咦,我上次吃的不是这个味啊?”

从厨房杀出来的大厨:“我TM就日了你的狗…”

——————最终决战




评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 05:11 , Processed in 0.034819 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表