2016-05-25 39 views
0

我有一個大型數據庫(20列中有700.000條以上的行),我在Excel中導入並對其執行不同的操作。將Excel數組值放入緩存中

這種操作的一個例子是分類。爲此,我使用2列:材料類型類別,其輸出在一列「最後一類」由:

IF materialType = "SERV" or category = "SERVICE" then finalCategory = "SERVICE" 

什麼是執行此計算最快的方法?

目前我使用FOR循環並已禁用application.screenupdating。

我也想知道,有沒有辦法把這些列緩存,然後運行它?

希望你能幫助,

乾杯!

回答

2

讓我們說,「materialType」列A和「類別」列B和「finalCategory」欄目爲U.那麼你可以試試這個:

Dim strFormula As String 

strFormula = "=IF(OR(A1=""SERV"",B1=""SERVICE""),""SERV"","""")" 
Sheet1.Range("U1:U700000").Formula = strFormula 

這避免遍歷70萬行,並進行個人操作,即使沒有屏幕更新,這可能會非常緩慢。

+0

這真的很像一個魅力:) – Vincent