即时窗口

如果你想测试一行宏代码而无需运行整个子代码,你可以直接在立即窗口中键入命令并点击 ENTER 来运行该行。

要测试线的输出,可以在其前面加上问号 ?,直接打印到立即窗口。或者,你也可以使用 print 命令打印输出。

在 Visual Basic 编辑器中,按 CTRL + G 打开立即窗口。要将当前选定的工作表重命名为 ExampleSheet,请在立即窗口中键入以下内容,然后单击 ENTER

   ActiveSheet.Name = "ExampleSheet"

直接在立即窗口中打印当前选定的工作表名称

? ActiveSheet.Name
ExampleSheet

在代码中实现内置函数或用户定义函数之前,此方法非常有用。下面的示例演示了立即窗口如何用于测试函数或一系列函数的输出以确认预期。

'In this example, the Immediate Window was used to confirm that a series of Left and Right 
'string methods would return the desired string

'expected output: "value"
print Left(Right("1111value1111",9),5) ' <---- written code here, ENTER pressed
value                                  ' <---- output

立即窗口还可用于设置或重置应用程序,工作簿或其他所需属性。如果你在一个意外抛出错误的子程序中有 Application.EnableEvents = False 而导致它关闭而不将值重置为 True(这可能会导致令人沮丧和意想不到的功能),这可能很有用。在这种情况下,命令可以直接输入到立即窗口并运行:

? Application.EnableEvents       ' <---- Testing the current state of "EnableEvents"
False                            ' <---- Output
Application.EnableEvents = True  ' <---- Resetting the property value to True
? Application.EnableEvents       ' <---- Testing the current state of "EnableEvents"
True                             ' <---- Output

对于更高级的调试技术,冒号:可用作行分隔符。这可以用于多行表达式,例如下面示例中的循环。

x = Split("a,b,c",","): For i = LBound(x,1) to UBound(x,1): Debug.Print x(i): Next i '<----Input this and press enter
a '<----Output
b '<----Output
c '<----Output