在错误继续下一个不工作的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编译器都会中断所有错误。