看板 Office 關於我們 聯絡資訊
之前我用錄製做出的巨集,按下去很容易當機 我把流程分成兩三個,計算筆數也減少 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
soyoso: y是公式算出,是指在儲存格內計算嗎?如果是的話,看是否 06/30 16:16
soyoso: 改為在巨集算出,暫存於陣列內,相加方面也在陣列內處理, 06/30 16:16
soyoso: 貼上方面則在最後將陣列的資料一次回傳到儲存格範圍 06/30 16:16
olycats: 連結提供的方法應該是有效的 我寫VBA的時候也會注意這些 07/01 00:31
olycats: 最後提到的複製貼上相加…看能不能提供檔案或程式碼 07/01 00:35
olycats: 比較好給建議 07/01 00:35
waiter337: 實際操作上 該連結的建議算有用 但算是治標不治本 07/01 07:05
waiter337: 不過想治本 難度會大增 需要利用陣列 範圍物件 直接匯 07/01 07:06
waiter337: 入方式的寫法 比較有幫助 07/01 07:06
waiter337: 利用上述方式速度差距依情況至少都差到3~N倍以上的速度 07/01 07:08
waiter337: 若有範例圖檔或google電子表格 用abc123寫出輸入範例 07/01 07:11
waiter337: 與輸出範例 可以快速幫你判斷如何下語法 07/01 07:11
已經站內信檔案給你們了
olycats: 收到了 晚一點再看 07/01 10:11
olycats: 但我跑起來很OK耶 不到一秒就跑完了 是因為筆數有縮減過? 07/01 17:28
olycats: 如果不考慮效能問題,你會需要到多少筆資料呢? 07/01 17:28
olycats: VBA的迴圈本來就會跑比較久 若要幾百 幾千筆一定超慢 07/01 17:32
olycats: 我覺得貼上相加不會是當機元凶 比較可能卡在公式計算 07/01 17:35
olycats: 如果把貼上相加那一行暫時先拿掉 就不會當機了嗎? 07/01 17:36
筆數有減少,但我跑起來還是有點慢,可能電腦太舊吧 把vlookup換成index-match ,似乎也可以加速一些
waiter337: 不要用 會更快 工作表上不要有任何函數 07/05 23:51
waiter337: 都用vba application 解決 07/05 23:51
確實可行耶,不過筆數要夠多,太少的話,就懶得寫哈 ※ 編輯: j2708180 (122.121.23.91 臺灣), 07/06/2020 14:38:40