各位好,我想請問,我有一段VBA執行到最後速度會非常的慢
不曉得是哪個部分佔了太多記憶體沒清除
這段扣做的事情如下
1. 從某3個url自動下載檔案並且另存,共有三個檔案。
2. 打開已經有的一個template檔,把上述三個檔案的資料複製貼上到這個template的
第一張sheet
(複製結束都有用application.cutcopymode false)
3. 從template另存一個新的檔案x
4. X這個檔案裡面插入第一欄,用for next迴圈把第一格的值等於後面每一格以分號相連
(例如A1 = B1;C1;D1....) 這裡用的是offset, for i = 1 to 20
檔案的本身大概只有700*20格而已,照理說量非常小。
問題出在4這個步驟,看得出來執行到這的時候每秒大概只跑的出兩列
也就是我700列得執行超過五分鐘
但我如果把同一段扣剪下,改成我手動把X打開再執行
那麼這個步驟可以秒殺,因此我想是前面的步驟佔了記憶體?
一開始執行這一整段程式碼的檔案本身已經有好幾個module
是否這個也有影響?
我嘗試過先整理資料再另存,沒有改善
不太確定還有可能是什麼原因,請教各位高手了
感謝