我正在尝试查找代码崩溃的行号,但是对于我的水平,此站点上的许多解释似乎都很复杂。
我的代码基本上如下,我不知道它在哪里中断。
Sub1
Call function1
Call function2
End Sub
该网站上的其他答案似乎只是一个简短的功能。但是我不知道在代码中的哪里调用该函数或如何获取弹出消息。如果我打算将sub1代码放入其函数中,我也不知道在哪里。初学者在这里。
最佳答案
如果您的代码没有行号,则VBA无法为您提供行号。
您可以编写VBA,并使它看起来像1980年:
Sub1
On Error GoTo 100
10 Call Function1
20 Call Function2
90 Exit Sub
100 Debug.Print Err.Message & " on line " & Erl
End Sub
但是你不想那样做。确实,您不需要行号。
您需要处理运行时错误的较小函数。
On Error GoTo ErrHandler
当发生运行时错误时,执行将跳转到名为
ErrHandler
的行标签。 ...
Exit Sub
ErrHandler: '<< the line label is denoted with a colon
该处理程序中发生了什么?如果您要调试,则可能只想在那里执行
Stop
并检查您的本地设备: Stop
然后在下一行添加
Resume
,然后按F8进入。 Resume
将返回导致错误的调用。如果那是一个函数调用,那么您需要处理该函数中的运行时错误。确保您永远不要在生产代码中留下
Stop
和Resume
指令:Sub WhenWillThisEnd()
On Error GoTo ErrHandler
Debug.Print 42/0
Exit Sub
ErrHandler:
Resume 'jumps back to the line that caused the error
Resume Next 'resumes execution on the line right after the one that went boom
End Sub
关于vba - 在VBA中查找错误行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553813/