[算表] 提昇VBA速度

看板Office作者 (JaJa)時間5年前 (2020/06/30 15:51), 5年前編輯推噓3(3017)
留言20則, 3人參與, 5年前最新討論串1/1
之前我用錄製做出的巨集,按下去很容易當機 我把流程分成兩三個,計算筆數也減少 select、selection也刪掉,果然順暢許多 但這樣子程式碼(格子位置)要改就很常遺漏 https://officeguide.cc/excel-vba-speed-up-macro-tips/ 請問這篇提到的方式,有沒有效呢? 除了畫面不會亂閃,感覺沒什麼沒什麼變化? 我有一個計算是 輸入 X1,得到好幾格 Y1,複製貼上 再輸入 X2,得到好幾格 Y2,複製貼上並相加 因為Y是公式算出來的,所以不能把公式計算切成手動 但這個貼上並相加,應該就是容易當機的元兇,筆數不能太多 應該要怎麼寫呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.237.7.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1593503518.A.B99.html

06/30 16:16, 5年前 , 1F
y是公式算出,是指在儲存格內計算嗎?如果是的話,看是否
06/30 16:16, 1F

06/30 16:16, 5年前 , 2F
改為在巨集算出,暫存於陣列內,相加方面也在陣列內處理,
06/30 16:16, 2F

06/30 16:16, 5年前 , 3F
貼上方面則在最後將陣列的資料一次回傳到儲存格範圍
06/30 16:16, 3F

07/01 00:31, 5年前 , 4F
連結提供的方法應該是有效的 我寫VBA的時候也會注意這些
07/01 00:31, 4F

07/01 00:35, 5年前 , 5F
最後提到的複製貼上相加…看能不能提供檔案或程式碼
07/01 00:35, 5F

07/01 00:35, 5年前 , 6F
比較好給建議
07/01 00:35, 6F

07/01 07:05, 5年前 , 7F
實際操作上 該連結的建議算有用 但算是治標不治本
07/01 07:05, 7F

07/01 07:06, 5年前 , 8F
不過想治本 難度會大增 需要利用陣列 範圍物件 直接匯
07/01 07:06, 8F

07/01 07:06, 5年前 , 9F
入方式的寫法 比較有幫助
07/01 07:06, 9F

07/01 07:08, 5年前 , 10F
利用上述方式速度差距依情況至少都差到3~N倍以上的速度
07/01 07:08, 10F

07/01 07:11, 5年前 , 11F
若有範例圖檔或google電子表格 用abc123寫出輸入範例
07/01 07:11, 11F

07/01 07:11, 5年前 , 12F
與輸出範例 可以快速幫你判斷如何下語法
07/01 07:11, 12F
已經站內信檔案給你們了

07/01 10:11, 5年前 , 13F
收到了 晚一點再看
07/01 10:11, 13F

07/01 17:28, 5年前 , 14F
但我跑起來很OK耶 不到一秒就跑完了 是因為筆數有縮減過?
07/01 17:28, 14F

07/01 17:28, 5年前 , 15F
如果不考慮效能問題,你會需要到多少筆資料呢?
07/01 17:28, 15F

07/01 17:32, 5年前 , 16F
VBA的迴圈本來就會跑比較久 若要幾百 幾千筆一定超慢
07/01 17:32, 16F

07/01 17:35, 5年前 , 17F
我覺得貼上相加不會是當機元凶 比較可能卡在公式計算
07/01 17:35, 17F

07/01 17:36, 5年前 , 18F
如果把貼上相加那一行暫時先拿掉 就不會當機了嗎?
07/01 17:36, 18F
筆數有減少,但我跑起來還是有點慢,可能電腦太舊吧 把vlookup換成index-match ,似乎也可以加速一些

07/05 23:51, 5年前 , 19F
不要用 會更快 工作表上不要有任何函數
07/05 23:51, 19F

07/05 23:51, 5年前 , 20F
都用vba application 解決
07/05 23:51, 20F
確實可行耶,不過筆數要夠多,太少的話,就懶得寫哈 ※ 編輯: j2708180 (122.121.23.91 臺灣), 07/06/2020 14:38:40
文章代碼(AID): #1U-kyUkP (Office)
文章代碼(AID): #1U-kyUkP (Office)