Debug.Print?"A等于"?&?A
在“立即窗口”中显示该内容;
代码如果有错误时,可以忽略,而不会中断;
On Error GoTo 0语句表示禁止当前过程中任何已启动的错误处理程序。
假设在过程中有On Error GoTo line和On Error Resume Next语句,那么本语句可以使用On Error GoTo line和On Error Resume Next失效。所以On Error GoTo 0语句不会单独使用。
如果在过程中使用了或者On Error GoTo line和On Error Resume Next语句,限制了程序出错时该如何处理,而在后续的过程中如果不再需要按该规则执行,则可以在适当的地方插入On Error GoTo 0语句,表示清除前面的错误处理机制。
有两个方法,Print和Assert;
Print方法可以在不暂停程序运行的情况下监控某个变量在代码执行过程中的变化。Print方法在立即窗口显示文本。
Assert方法只有在Visual Basic编辑器中起作用,此方法和if语句类似,它判断一个条件是否成立,但是if语句不会暂停程序的执行。如果此方法的参数不成立,程序将在该语句暂停并进入中断模式。
Sub immediateTest()
Dim sh As Variant
Dim strTmp As String
For Each sh In Sheets
If strTmp = "" Then
strTmp = sh.Name
Else
strTmp = strTmp & vbCrLf & sh.Name
End If
Next
MsgBox strTmp
End Sub
'程序逐句运行到第5行代码时,在[立即窗口]中输入“?sheets.count”后按Enter键,将在下一行打印工作表总数。
'输入“?sh.name”后按Enter键,将在下一行打印出循环中的工作表名称;
'也可以调用自定义函数而打印出函数返回的值,如“?AssertTest(10,5)”
'立即窗口改变变量的值查看运行情况
Sub test2()
Dim i As Integer
For i = 1 To 100
Debug.Print i * i
Next i
End Sub
'逐句运行到i=2时,可以在立即窗口中输入i=88,断续逐句运行(F9),可以查看打印结果;
'立即窗口也可以直接运行一行VBA语句;
'For Each sh In Sheets: Debug.Print sh.Name: Next
Sub watchTest()
Dim Iradius As Integer
Dim k As Integer
For Iradius = 1 To 10
Debug.Print GetCircleArea(Iradius)
If Iradius > 7 Then
k = 1
End If
Next Iradius
End Sub
Function GetCircleArea(ByVal Iradius As Integer) As Double
GetCircleArea = Iradius * Iradius * 3.1415926
End Function
'可以监视指定的表达式,如GetCircleArea(Iradius),Iradius=5;
'调试→添加监视,监视类型:当监视值为真时中断
删除监视:监视窗口中选择→del