作者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
→ KnightG:記憶體會佔蠻大的 請小心測試填一頁滿格 04/25 02:17
推 u19901006:咦?這樣跑得出來嗎 我改成Sheet5結果跑不出來QQ 04/25 02:46
→ u19901006:不過我的電腦居然跑了9X秒 看來是我的筆電太爛 04/25 02:47
→ u19901006:但還是感謝您:) 04/25 02:49
推 ClubT:有可能是防毒軟體的關係 ... 我有碰過會檢查VBA處理的防毒 04/25 09:00
→ KnightG:奇怪 array去填range應該會比cell用for填快多才對 04/25 23:28
→ KnightG:還是我會錯意了@@ 04/25 23:28
推 u19901006:我找到問題了 因為我前面的活頁簿有反覆運算和自動計算 04/26 00:42
→ u19901006:開新檔案後速度就改善很多:) 04/26 00:42