我正在尝试调试我编写的长代码,我需要逐行执行。
问题是我在Mac上并且在这种情况下不知道如何使用F8。谁能告诉我怎么能这样做呢?我怎么知道哪一行导致执行问题?
答案 0 :(得分:11)
要检查哪条线路给您错误,您可以使用ERL
属性。请参阅下面的示例代码。
Sub sample()
Dim i As Long
On Error GoTo Whoa
10 Debug.Print "A"
20 Debug.Print "B"
30 i = "Sid"
40 Debug.Print "A"
50 Exit Sub
Whoa:
MsgBox "Error on Line : " & Erl
End Sub
要使其正常工作,您必须按照上面的操作对代码行进行编号。运行上面的代码,看看会发生什么。
答案 1 :(得分:6)
Sub Main()
Dim lNum As Long
On Error GoTo ErrHandler
lNum = 1 / 0
ErrExit:
Exit Sub
ErrHandler:
Debug.Print Err.Description
Stop
Resume
End Sub
当你到达Stop时,然后Step Into两次。如果你没有F8,你应该有一个菜单项来踩到一条线。 Resume会将您带回导致错误的行。
答案 2 :(得分:4)