我正在尝试将错误消息放到下面的代码中(因此如果出现运行时错误,我希望msgbox出现并且代码在用户单击错误消息时停止运行。我在下面给了它一个镜头但有一些问题,代码不能像我喜欢的那样运行。想知道是否有人可以帮助我。
Dim HL As Hyperlink
For Each HL In ActiveSheet.Hyperlinks
On Error GoTo ErrorMsgBox
HL.Range.Offset(0, 1).Value = HL.Address
HL.Range.Offset(0, 1).Value = FileDateTime(HL.Range.Offset(0, 1).Value)
Exit Sub
ErrorMsgBox:
MsgBox ("Error")
Resume Next
Next
End Sub
答案 0 :(得分:3)
您的错误处理需要在循环外部。此外,由于您希望代码停止运行,因此不应使用Resume Next
语句。另外,你的Exit Sub
循环中有一个For...Next
,这可能让你感到困惑,但这意味着你的循环"只会运行一次,这几乎肯定不是你想要的。
修:
Dim HL As Hyperlink
For Each HL In ActiveSheet.Hyperlinks
On Error GoTo ErrorMsgBox
HL.Range.Offset(0, 1).Value = HL.Address
HL.Range.Offset(0, 1).Value = FileDateTime(HL.Range.Offset(0, 1).Value)
Next
'# Put the exit statement *before* your error handler, and *outside* of the loop
Exit Sub
'# Error handler will inform user and end sub.
ErrorMsgBox:
MsgBox ("Error")
Err.Clear
End Sub