作者j2708180 (JaJa)
看板Office
标题[算表] 提升VBA速度
时间Tue Jun 30 15:51:55 2020
之前我用录制做出的巨集,按下去很容易当机
我把流程分成两三个,计算笔数也减少
select、selection也删掉,果然顺畅许多
但这样子程式码(格子位置)要改就很常遗漏
https://officeguide.cc/excel-vba-speed-up-macro-tips/
请问这篇提到的方式,有没有效呢?
除了画面不会乱闪,感觉没什麽没什麽变化?
我有一个计算是
输入 X1,得到好几格 Y1,复制贴上
再输入 X2,得到好几格 Y2,复制贴上并相加
因为Y是公式算出来的,所以不能把公式计算切成手动
但这个贴上并相加,应该就是容易当机的元凶,笔数不能太多
应该要怎麽写呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.237.7.73 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1593503518.A.B99.html
1F:→ soyoso: y是公式算出,是指在储存格内计算吗?如果是的话,看是否 06/30 16:16
2F:→ soyoso: 改为在巨集算出,暂存於阵列内,相加方面也在阵列内处理, 06/30 16:16
3F:→ soyoso: 贴上方面则在最後将阵列的资料一次回传到储存格范围 06/30 16:16
4F:→ olycats: 连结提供的方法应该是有效的 我写VBA的时候也会注意这些 07/01 00:31
5F:推 olycats: 最後提到的复制贴上相加…看能不能提供档案或程式码 07/01 00:35
6F:→ olycats: 比较好给建议 07/01 00:35
7F:→ waiter337: 实际操作上 该连结的建议算有用 但算是治标不治本 07/01 07:05
8F:→ waiter337: 不过想治本 难度会大增 需要利用阵列 范围物件 直接汇 07/01 07:06
9F:→ waiter337: 入方式的写法 比较有帮助 07/01 07:06
10F:→ waiter337: 利用上述方式速度差距依情况至少都差到3~N倍以上的速度 07/01 07:08
11F:→ waiter337: 若有范例图档或google电子表格 用abc123写出输入范例 07/01 07:11
12F:→ waiter337: 与输出范例 可以快速帮你判断如何下语法 07/01 07:11
已经站内信档案给你们了
13F:→ olycats: 收到了 晚一点再看 07/01 10:11
14F:→ olycats: 但我跑起来很OK耶 不到一秒就跑完了 是因为笔数有缩减过? 07/01 17:28
15F:→ olycats: 如果不考虑效能问题,你会需要到多少笔资料呢? 07/01 17:28
16F:→ olycats: VBA的回圈本来就会跑比较久 若要几百 几千笔一定超慢 07/01 17:32
17F:推 olycats: 我觉得贴上相加不会是当机元凶 比较可能卡在公式计算 07/01 17:35
18F:→ olycats: 如果把贴上相加那一行暂时先拿掉 就不会当机了吗? 07/01 17:36
笔数有减少,但我跑起来还是有点慢,可能电脑太旧吧
把vlookup换成index-match ,似乎也可以加速一些
19F:推 waiter337: 不要用 会更快 工作表上不要有任何函数 07/05 23:51
20F:→ waiter337: 都用vba application 解决 07/05 23:51
确实可行耶,不过笔数要够多,太少的话,就懒得写哈
※ 编辑: j2708180 (122.121.23.91 台湾), 07/06/2020 14:38:40