Performance 在Excel VBA中,volatile Offset函数非常慢。什么是替代方案?
我的Excel宏出现性能问题。有一段代码运行得非常慢。我认为原因是Performance 在Excel VBA中,volatile Offset函数非常慢。什么是替代方案?,performance,excel,vba,offset,Performance,Excel,Vba,Offset,我的Excel宏出现性能问题。有一段代码运行得非常慢。我认为原因是Offset函数。我在网上发现它是一个易变函数,需要重新计算很多次。 奇怪的是,我将它用作VBA函数,因此我无法确定它将如何影响性能,因为它永远不需要重新计算 以下是我使用偏移功能的方式: 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 是
Offset
函数。我在网上发现它是一个易变函数,需要重新计算很多次。奇怪的是,我将它用作VBA函数,因此我无法确定它将如何影响性能,因为它永远不需要重新计算 以下是我使用偏移功能的方式:
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
是否有更快的(非易失性?)替代方案?您是否尝试过单元格(行、列)。值=…
显然,您需要调整行
和列
,以说明C9(9,3)的起始位置
另外,您确定函数effect()
不是瓶颈吗
更新:
你也试过了吗
Application.Calculation = xlCalculationManual
....Your Code....
Application.Calculation = xlCalculationAutomatic
您是否尝试过单元格(行、列)。值=…
显然,您需要调整行
和列
,以说明C9(9,3)的起始位置
另外,您确定函数effect()
不是瓶颈吗
更新:
你也试过了吗
Application.Calculation = xlCalculationManual
....Your Code....
Application.Calculation = xlCalculationAutomatic
哇,差别真大。通过添加两行代码,从30秒增加到3秒。谢谢哥们,这些线的影响超过9000!加上Application.calculationfull,我设法将所有的计算速度提高了大约7倍,只是要确保你没有可能出错的代码,并保持Application.CalculationManual处于打开状态-它真的让人讨厌!哇,差别真大。通过添加两行代码,从30秒增加到3秒。谢谢哥们,这些线的影响超过9000!加上Application.calculationfull,我设法将所有的计算速度提高了大约7倍,只是要确保你没有可能出错的代码,并保持Application.CalculationManual处于打开状态-它真的让人讨厌!我相信Excel
OFFSET()
函数是易失性的——不是VBA.OFFSET
属性。我相信ExcelOFFSET()
函数是易失性的——不是VBA.OFFSET
属性。