将Excel数组值放在缓存中

时间:2016-05-25 08:16:17

标签: excel vba

我有一个大型数据库(在20列中有700,000多行),我在Excel中导入并执行不同的操作。

这种操纵的一个例子是分类。为此,我使用了两列:材料类型类别,并将其输出到“最终类别”列中:

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

执行此计算的最快方法是什么?

目前我使用FOR循环并已禁用application.screenupdating。

我也想知道,有没有办法将这些列放在缓存中然后再运行它?

希望你能提供帮助,

干杯!

1 个答案:

答案 0 :(得分:2)

假设'materialType'列是A,'category'列是B,'finalCategory'列是U.那么你可以试试这个:

Dim strFormula As String

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

这可以避免循环超过700,000行并进行单独的操作,即使没有屏幕更新,这也会非常缓慢。