作者KnightG ( ~ 风 ~ )
看板Visual_Basic
标题Re: [VBA ] 求救 将结果输出至Excel的速度过慢
时间Mon Apr 25 01:57:16 2011
※ 引述《u19901006 (U)》之铭言:
: 我目前使用的方法是Worksheet.cell.Value = 阵列
: 再使用For Next回圈让它跑
: 可是真的很慢(我快疯掉了,跑一次要几百秒= =)
: 有想过直接印出阵列这种方法 可是我不会写QQ
: 请问有不使用回圈而直接输出的方法吗?
: 麻烦大家了
可以试试看这个方式
贴个小范例
请再依照需要印出阵列范围修改一下吧!!
写满一页满格 还算蛮快吧(!!??)约10几秒 ~
Sub Example()
Dim myarr()
myarr = Sheet1.Range("A1:IV65536").Value
For i = 1 To 65536
For j = 1 To 256
myarr(i, j) = i + j
Next j
Next i
Sheet1.Range("A1:IV65536").Value = myarr
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.25.177.147
1F:→ KnightG:记忆体会占蛮大的 请小心测试填一页满格 04/25 02:17
2F:推 u19901006:咦?这样跑得出来吗 我改成Sheet5结果跑不出来QQ 04/25 02:46
3F:→ u19901006:不过我的电脑居然跑了9X秒 看来是我的笔电太烂 04/25 02:47
4F:→ u19901006:但还是感谢您:) 04/25 02:49
5F:推 ClubT:有可能是防毒软体的关系 ... 我有碰过会检查VBA处理的防毒 04/25 09:00
6F:→ KnightG:奇怪 array去填range应该会比cell用for填快多才对 04/25 23:28
7F:→ KnightG:还是我会错意了@@ 04/25 23:28
8F:推 u19901006:我找到问题了 因为我前面的活页簿有反覆运算和自动计算 04/26 00:42
9F:→ u19901006:开新档案後速度就改善很多:) 04/26 00:42