Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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中隐藏屏幕更新的方法,我要找的是一个数据问题,所以我想看到屏幕更新。是否有办法对屏幕进行编码,以便在宏运行期间缓慢更新?我尝试了以下方法: “///添加屏幕更新以观察正在发生的情况 Application.ScreenUpdating=True 应用程序。立即等待+时间值00:00:01 "///// 我得到的只是屏幕闪烁 感谢您对我的帮助。屏幕更新只能在代码开始时设置一次。 但是,您需要将等待放入循环中,或分散在代码行之间。屏幕更新只能在代码开始时设置一次。 但是,

我已经看到了所有在excel中隐藏屏幕更新的方法,我要找的是一个数据问题,所以我想看到屏幕更新。是否有办法对屏幕进行编码,以便在宏运行期间缓慢更新?我尝试了以下方法:

“///添加屏幕更新以观察正在发生的情况 Application.ScreenUpdating=True 应用程序。立即等待+时间值00:00:01 "/////

我得到的只是屏幕闪烁


感谢您对我的帮助。

屏幕更新只能在代码开始时设置一次。
但是,您需要将等待放入循环中,或分散在代码行之间。

屏幕更新只能在代码开始时设置一次。
但是,您需要在循环内部或代码行之间进行等待。

您所追求的是调试错误的更好方法。应用程序的ScreenUpdate属性不是您想要的:

相反,使用F9在代码中设置一个断点,在您怀疑发生错误的位置或之前。如果有必要,如果您不知道错误发生在哪里,您可以将其放在第一行代码中

这是一个断点,它是红色/褐红色突出显示的线:

然后,使用F8键,您可以逐行查看代码

您可以添加任意数量的断点。按F5将只执行代码直到下一个断点,然后必须按F8或F5才能继续执行

一些额外的东西可以帮助您调试

使用“本地人”窗口

这显示了范围中的变量,您可以单击它们查看它们的属性/等等。正如您所看到的,我在一个相当复杂的应用程序中有大量的变量。我发现Immidates窗口对对象变量和数组非常有用。以下是展开数组变量时的情况,以便查看其所有内容:

使用即时窗口在代码之外查询变量或执行语句,这相当于Debug.Print语句。例如,让我们检查某个变量的值是否为9,您可以:

?someVar=9,然后按enter键。它会告诉你是真是假。您可以通过?someVar直接查询该值,它将打印该值

在这个屏幕截图中,我正在检查布尔值,它显示该值为False。我还可以在“本地人”窗口中验证这一点


您所追求的是一种更好的调试错误的方法。应用程序的ScreenUpdate属性不是您想要的:

相反,使用F9在代码中设置一个断点,在您怀疑发生错误的位置或之前。如果有必要,如果您不知道错误发生在哪里,您可以将其放在第一行代码中

这是一个断点,它是红色/褐红色突出显示的线:

然后,使用F8键,您可以逐行查看代码

您可以添加任意数量的断点。按F5将只执行代码直到下一个断点,然后必须按F8或F5才能继续执行

一些额外的东西可以帮助您调试

使用“本地人”窗口

这显示了范围中的变量,您可以单击它们查看它们的属性/等等。正如您所看到的,我在一个相当复杂的应用程序中有大量的变量。我发现Immidates窗口对对象变量和数组非常有用。以下是展开数组变量时的情况,以便查看其所有内容:

使用即时窗口在代码之外查询变量或执行语句,这相当于Debug.Print语句。例如,让我们检查某个变量的值是否为9,您可以:

?someVar=9,然后按enter键。它会告诉你是真是假。您可以通过?someVar直接查询该值,它将打印该值

在这个屏幕截图中,我正在检查布尔值,它显示该值为False。我还可以在“本地人”窗口中验证这一点


在调试器中使用F8逐步完成代码。你可以通过这种方式一行一行地看。干杯,我真的不明白你为什么要这么做。如果您有问题,为什么不使用断点进行调试?另外,请使用“局部变量”窗口或添加手表,这样您就可以监视变量所包含的值,而“即时”窗口也可以帮助进行调试。@DavidZemens,我想您可能了解了我要查找的内容……如何将局部变量或即时代码编码到循环中?您不需要对其进行编码。这是你可以在VBE中看到的东西。我将添加一个带有一些屏幕截图的答案。在调试器中使用F8逐步完成代码。你可以通过这种方式一行一行地看。干杯,我真的不明白你为什么要这么做。如果您有问题,为什么不使用断点进行调试?另外,请使用“局部变量”窗口或添加手表
您可以监视变量所包含的值,即时窗口也可以帮助调试。@DavidZemens,我想您可能了解我要查找的内容……如何将局部变量或即时代码编码到循环中?您不需要编码。这是你可以在VBE中看到的东西。我将添加一个带有一些屏幕截图的答案。谢谢,@DavidZemens,碰巧我真正想要的是调试。打印此特定案例。干杯。我希望在我自学VBA时有人告诉我这些事情。这会帮我省去很多麻烦:谢谢,@DavidZemens,碰巧我真正想要的是这个特殊案例的调试。打印。干杯。我希望在我自学VBA时有人告诉我这些事情。这会帮我省下很多麻烦: