Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
为什么单击即时窗口会加快VBA代码的执行?_Vba_Excel - Fatal编程技术网

为什么单击即时窗口会加快VBA代码的执行?

为什么单击即时窗口会加快VBA代码的执行?,vba,excel,Vba,Excel,我在Excel中编写了一个VBA脚本,它迭代计算一系列物理变量,并在每次迭代时重新计算工作表中其他相关变量的值 我已经从VisualBasic编辑器中运行了代码,以便通过即时窗口在每次迭代中监视一些变量的值。我很惊讶地注意到,只需在即时窗口上单击鼠标或按Enter键,执行就会突然加速。相反,当VBA脚本从电子表格中运行时,它的执行速度大约慢五倍,我找不到加速它的方法 我想知道当点击即时窗口时,执行加速的原因是什么,我如何在没有这个技巧的情况下加速代码 我正在使用Excel 2013和Window

我在Excel中编写了一个VBA脚本,它迭代计算一系列物理变量,并在每次迭代时重新计算工作表中其他相关变量的值

我已经从VisualBasic编辑器中运行了代码,以便通过即时窗口在每次迭代中监视一些变量的值。我很惊讶地注意到,只需在即时窗口上单击鼠标或按Enter键,执行就会突然加速。相反,当VBA脚本从电子表格中运行时,它的执行速度大约慢五倍,我找不到加速它的方法

我想知道当点击即时窗口时,执行加速的原因是什么,我如何在没有这个技巧的情况下加速代码

我正在使用Excel 2013和Windows 8.1

Application.ScreenUpdating = False
Application.Calculation = xlManual
在脚本的开头和

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
在脚本结束时,可能会产生与聚焦即时窗口相同的速度

在脚本的开头和

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

脚本结束时,可能会产生与聚焦即时窗口相同的速度。

我们需要查看您的代码以回答您的问题。在您的代码中,您可以使用windows/引用其他工作簿/工作表,使用.Select或其他不必要的函数。在其他地方,您可以找到一些加速VBA代码的一般提示和窍门:我们需要查看您的代码以回答您的问题。在您的代码中,您可以使用windows/引用其他工作簿/工作表,使用.Select或其他不必要的函数。可以在以下位置找到加速VBA代码的一些常规提示和技巧:谢谢。我已经试过了,不幸的是改进很小。我仍然有一个更快的代码,只需在运行时点击即时窗口(在我看来这是无法解释的),我也很困惑。我的下一个猜测是windows进程管理的一个bug。当vba窗口聚焦时,Windows可能会将该进程识别为vba进程,并赋予其更高的优先级,但当excel窗口聚焦时,则不会。手动设置进程优先级可能有助于验证该假设。谢谢。我已经试过了,不幸的是改进很小。我仍然有一个更快的代码,只需在运行时点击即时窗口(在我看来这是无法解释的),我也很困惑。我的下一个猜测是windows进程管理的一个bug。当vba窗口聚焦时,Windows可能会将该进程识别为vba进程,并赋予其更高的优先级,但当excel窗口聚焦时,则不会。手动设置流程优先级可能有助于验证该假设。