Excel VBA搜索形状

时间:2015-08-04 19:37:12

标签: excel-vba vba excel

我希望有人可以指出我在这个代码出错的地方。我用它来搜索工作表上的形状。我希望在该形状不存在时触发消息。使用下面的代码,为什么在形状确实存在时它会转到错误处理程序?

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

1 个答案:

答案 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