显示宏执行的更新

时间:2013-05-13 19:33:17

标签: vba excel-vba excel

所以我已经看到了在excel中隐藏屏幕更新的所有方法,我正在寻找的是数据问题,所以我想看到屏幕更新。有没有办法在宏中缓慢地对屏幕进行编码更新?我尝试了以下方法:

  

'//////添加屏幕更新以观察正在发生的事情   Application.ScreenUpdating = True   Application.Wait Now + TimeValue(“00:00:01”)   “/////

我得到的只是屏幕闪烁。

感谢你对我好。

2 个答案:

答案 0 :(得分:7)

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

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

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

Breakpoint

然后,使用F8键,您可以逐行逐步执行代码。

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

可帮助您调试的其他一些内容

使用“本地”窗口。

Locals Window

这会向您显示范围内的可变数据,您可以单击它们查看其属性/等。如您所见,我在一个相当复杂的应用程序中有很多变量。我发现immeidates窗口对Object变量和数组非常有帮助。这是我扩展数组变量时的样子,以便我可以看到它的所有内容:

Locals window closeup on an array variable

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

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

在此屏幕截图中,我正在检查布尔值,并显示值为False。我也可以在Locals窗口中验证这一点。

Immediate Window

答案 1 :(得分:0)

屏幕更新必须在代码开头只设置一次。 但是你需要将Wait放入循环中,或者在代码行之间传播。