我希望有人可以指出我在这个代码出错的地方。我用它来搜索工作表上的形状。我希望在该形状不存在时触发消息。使用下面的代码,为什么在形状确实存在时它会转到错误处理程序?
Private Sub CommandButton1_Click()
On Error GoTo errHandler
Dim SearchFor
SearchFor = UCase(InputBox("Search: "))
ActiveSheet.Shapes.Range(Array(SearchFor)).Visible = True
errHandler:
MsgBox "No Reference Found For: " & SearchFor
End Sub
答案 0 :(得分:1)
你总是去你的错误处理程序,这就是原因。我在到达之前添加了Exit Sub:
Private Sub CommandButton1_Click()
On Error GoTo errHandler
Dim SearchFor
SearchFor = UCase(InputBox("Search: "))
ActiveSheet.Shapes.Range(Array(SearchFor)).Visible = True
Exit sub
errHandler:
MsgBox "No Reference Found For: " & SearchFor
End Sub
找到形状时,它永远不会到达Exit Sub之后的内容。如果出现错误,GoTo将绕过它。如果您想在GoTo上阅读更多内容:https://msdn.microsoft.com/en-us/library/69whc95c.aspx