0
我有一個超過1,000,000行的Excel表,我需要執行一些vlookups/countif語句。我應該使用所有數據在單張紙上運行我的VB宏嗎,還是將數據分成不同的單張紙張,然後在每張紙上運行宏,這樣可以節省大量時間?有沒有可以幫助我做出這個決定的等式?我應該把我的數據分成幾個小塊嗎?
感謝您的幫助。
這裏是我計劃使用,(雖然我更想找一個普遍的答案,如果有一個,當我處理在Excel中的大型數據庫提取我可以申請)的VB:
Sub Find_Space_then_Compare()
'
' Finds the Space in the Key, Extracts Character after, and looks for match
in Sample2 sheet
ActiveCell.FormulaR1C1 = "=MID(RC[-1],FIND("" "",RC[-1])+1,256)"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B100")
Range("B2:B100").Select
Range("C2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Sample2!R81C3:R121C3,1)"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C100")
Range("C2:C100").Select
End Sub
我不太明白'vlookup'和'countif'與宏有什麼關係。但是,在計算設置爲自動(如果您有該選項)的情況下,在所有這些單元格中不要有超過一百萬個公式是一個好主意。現在,談到速度比較/最佳實踐的問題,在我看來,這個問題對於SO來說有點偏離主題,並且更適合[Code Review](http://codereview.stackexchange.com/)。話雖如此,我只要繼續在任一版本上運行宏,並獲取內部時間來衡量差異:自己測試一下。 – Ralph
我正在運行的宏包括vlookups和countif's。我提到這一點,因爲如果我的函數只是a = left([field],2),那麼足夠短的時間運行一百萬行,足以分割數據不值得我努力。但是= vlookup可能需要多分鐘才能運行。並感謝您的意見。 – Mwspencer
@Ralph一個不包含任何工作代碼的問題在[codereview.se]上沒有任何關係,並且在錘子擊中它之前的壽命是幾秒鐘內測量的。 –