在Excel VBA中,易失性偏移功能非常慢.有什么选择?

neX*_*Xus 0 excel performance vba offset

我的Excel宏中存在性能问题.一段特殊的代码运行速度非常慢.我认为原因是Offset功能.我在网上发现它是一个易于重新计算的易失函数.
奇怪的是,我使用它作为一个VBA函数,所以我想不通,因为它从来没有它会如何影响性能需要重新计算.

这就是我使用offset函数的方法:

For i=0 To 10
 For P=0 To 3
  For T=0 To 3
    Range("C9").Offset(6 * i + T, P).Value = effect(i,P,T)
  Next
 Next
Next
Run Code Online (Sandbox Code Playgroud)

是否存在更快(非易失性?)的替代方案?

El *_*oco 7

你有没有尝试过 Cells(row,column).Value = ...

显然你需要调整rowcolumn考虑你的C9的起始位置(9,3)

你还确定这个功能effect()不是瓶颈吗?

更新:

还有你试过

Application.Calculation = xlCalculationManual
    ....Your Code....
Application.Calculation = xlCalculationAutomatic
Run Code Online (Sandbox Code Playgroud)

  • 只要确保你没有可能出错的代码并让Application.CalculationManual保持开启状态 - 这真的让人失望! (2认同)