Re: [VBA ] 求救 將結果輸出至Excel的速度過慢

看板Visual_Basic作者 ( ~ 風 ~ )時間14年前 (2011/04/25 01:57), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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

04/25 02:17, , 1F
記憶體會佔蠻大的 請小心測試填一頁滿格
04/25 02:17, 1F

04/25 02:46, , 2F
咦?這樣跑得出來嗎 我改成Sheet5結果跑不出來QQ
04/25 02:46, 2F

04/25 02:47, , 3F
不過我的電腦居然跑了9X秒 看來是我的筆電太爛
04/25 02:47, 3F

04/25 02:49, , 4F
但還是感謝您:)
04/25 02:49, 4F

04/25 09:00, , 5F
有可能是防毒軟體的關係 ... 我有碰過會檢查VBA處理的防毒
04/25 09:00, 5F

04/25 23:28, , 6F
奇怪 array去填range應該會比cell用for填快多才對
04/25 23:28, 6F

04/25 23:28, , 7F
還是我會錯意了@@
04/25 23:28, 7F

04/26 00:42, , 8F
我找到問題了 因為我前面的活頁簿有反覆運算和自動計算
04/26 00:42, 8F

04/26 00:42, , 9F
開新檔案後速度就改善很多:)
04/26 00:42, 9F
文章代碼(AID): #1Dj6H-dx (Visual_Basic)
文章代碼(AID): #1Dj6H-dx (Visual_Basic)