sumif函数vba更快
我在我的vba代码中使用sumifs函数,但我注意到速度一直很慢,需要几分钟,因为我每周有10k-20k的logging。
这里是反映sumiffunction的代码部分,所以代码工作,但我正在寻找方法,可以帮助它运行得更快。
For i = 2 To LR10 MOB_T.Cells(i, 13).Value = Application.WorksheetFunction.SumIfs(Rng370, Rng380, MOB_T.Cells(i, 12).Value, Rng390, Selection.Cells(6, 2).Value) Next i
避免循环。 缓慢的部分是在VBA和电子表格之间传输数据。 对整个目标范围一次input公式 ,必要时将其转换为静态值。 就像是:
range("M2:M" & LR10).Formula = "=SUMIFS(some params here)"
你也可以考虑使用FormulaR1C1
,这可能会使你的公式变得更容易和可读。
要转换为静态值 – 如果需要的话 – 只需使用:
With range("M2:M" & LR10) .value = .value End With
运行代码之前,可以尝试将“计算”设置为手动。
Application.Calculation = xlCalculationManual
然后一旦循环完成,再打开它:
Calculate Application.Calculation = xlAutomatic