sumif函数vba更快

时间:2017-08-31 13:41:22

标签: excel vba excel-vba

我在我的vba代码中使用sumifs功能,但我发现速度很慢,需要几分钟,因为我每周有10k-20k的记录。

以下是反映sumif功能的代码部分,因此代码可以工作,但我正在寻找可以帮助它更快运行的方法。

abc[1]->x

2 个答案:

答案 0 :(得分:2)

避免循环。缓慢的部分是在VBA和电子表格之间传输数据。 立即为整个目标范围输入公式,然后根据需要将其转换为静态值。类似的东西:

range("M2:M" & LR10).Formula = "=SUMIFS(some params here)"

您还可以考虑使用FormulaR1C1,这可能会使您的公式更容易阅读。

要转换为静态值 - 如果需要 - 只需使用:

With range("M2:M" & LR10)
   .value = .value
End With

答案 1 :(得分:0)

您可以尝试在运行代码之前将计算设置为手动。

Application.Calculation = xlCalculationManual

然后一旦完成循环,再次打开它:

Calculate
Application.Calculation = xlAutomatic