我正在使用使用宏的Ctrl + F模拟从工作表中查找特定数字,我已经添加了On error resume下一个代码,以防它找不到值但错误处理不起作用,我得到了以下信息。
以下是代码:
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
答案 0 :(得分:1)
有两种可能性:
使用On Error GoTo 0
声明可以重新打开错误。
打破所有错误选项可以在VBA编辑器选项的错误捕获部分中选择(要检查它,请转到工具>选项>一般&gt ;错误捕获VBA编辑器菜单栏)。 如果选择此选项,则无论应用何种错误处理逻辑,VBA编译器都会中断所有错误。
答案 1 :(得分:1)
您仍在尝试.Activate
找到(未)找到的单元格。
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 object到找到的位置。如果找不到任何内容,fnd
var就不算什么。