Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 在Excel VBA中,volatile Offset函数非常慢。什么是替代方案?_Performance_Excel_Vba_Offset - Fatal编程技术网

Performance 在Excel VBA中,volatile Offset函数非常慢。什么是替代方案?

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 是

我的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
是否有更快的(非易失性?)替代方案?

您是否尝试过
单元格(行、列)。值=…

显然,您需要调整
,以说明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
属性。我相信Excel
OFFSET()
函数是易失性的——不是VBA
.OFFSET
属性。