我在我的vba代码中使用sumifs功能,但我发现速度很慢,需要几分钟,因为我每周有10k-20k的记录。
以下是反映sumif功能的代码部分,因此代码可以工作,但我正在寻找可以帮助它更快运行的方法。
abc[1]->x
答案 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