[算表] excel vba 效能改善

看板Office作者 (ad)時間11年前 (2015/04/05 00:55), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
軟體:2007 版本:excel 說明一下需要做的事情 我有兩份文件 A , B 要建立一份新文件C 其中有三個sheet B中的每一列為一筆完整資料,會根據每列其中幾個cell值在A裡面比對的結果 將B這一筆資料其中幾個cell貼到C中其中一個sheet 因為A,B資料量並不是完全一一對應 有可能找不到 因此我先用match找到B這筆資料在A哪一筆 然後if判斷其中幾個cell條件 再挑出幾個cell貼到C 現在資料量約60000筆情況下要跑200秒 我認為花時間的部份在 1. MATCH 2. if 檢查cell值 3. B檔案data貼到C 其中2跟3 試過先將A B 讀到variant再用array(i,j) 讀取希望可以改善 可是效能卻完全沒改善 讓我很疑惑 還是需要199~200秒 我for跑60000次 range 都load到memory不是應該會改善很多? 另外 MATCH也嘗試過用if array()判斷 變得無敵慢 想請教大家這種還有辦法改善嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.94.104 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1428166556.A.D0D.html

04/05 11:55, , 1F
可用AdvancedFilter來改善
04/05 11:55, 1F

04/05 12:09, , 2F
s大 您有遇過用array搜尋比對沒改善的情況嗎
04/05 12:09, 2F

04/05 12:15, , 3F
這方面要測試看是比對或是複製貼上,而導致效能不高
04/05 12:15, 3F

04/05 12:16, , 4F
因為這二種都有可能
04/05 12:16, 4F

04/05 12:32, , 5F
貼上的部份大約會有一萬多列 11行 11萬cell...200秒?
04/05 12:32, 5F

04/05 12:49, , 6F
複製上不只有只是複製值還含有儲存格的資料,例如框線、格
04/05 12:49, 6F

04/05 12:51, , 7F
式..這就有可能是變慢的原因之一,也不能說是絕對的
04/05 12:51, 7F

04/06 18:08, , 8F
試著在巨集執行前改為手動運算公式呢?或許是因為你的C
04/06 18:08, 8F

04/06 18:08, , 9F
表格有大量公式?
04/06 18:08, 9F
文章代碼(AID): #1L81USqD (Office)
文章代碼(AID): #1L81USqD (Office)