在错误继续下一个不工作的VBA
我正在使用Ctrl + F模拟使用macros来查找表中的特定号码,我已经添加了On error resume next code,以防万一它找不到值但error handling不起作用,我收到以下消息。
这里是代码:
Sheets("Not filled").Activate On Error Resume Next Cells.Find(what:=refnumber, After:=ActiveCell, LookIn:=xlFormulas, _ lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate
您仍然在尝试。 .Activate
(NOT)find的单元格。
Dim fnd As Range, refnumber As Long refnumber = 123 With Sheets("Not filled") .Activate On Error Resume Next Set fnd = .Cells.Find(what:=refnumber, After:=ActiveCell, LookIn:=xlFormulas, _ lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) On Error GoTo 0 If Not fnd Is Nothing Then fnd.Select Else MsgBox "Not found :(" End If End With
这将尝试Set
Range对象设置为find的位置。 如果fnd
任何东西,那么fnd
就什么也没有。
有两种可能性:
-
通过使用
On Error GoTo 0
语句,可以重新打开On Error GoTo 0
。 -
打破所有错误选项可以在VBA编辑器选项的错误陷印部分中select(要检查它进入工具>选项>常规> VBA编辑器菜单栏上的错误陷印)。 如果select此选项,则无论使用什么error handling逻辑,VBA编译器都会中断所有错误。