使用 Find 方法时找不到匹配项时出错
Error when match is not found when using Find method
我知道这可能有广泛的覆盖范围,我已经尝试了其中的一些,但仍然无法正常工作:
Dim d As Range
For Each d In orng
Dim val As Range
Set val = adws.Range("O2:O" & lrw).Find(d.Value, , xlValues, xlWhole).Offset(0, 26)
If val Is Nothing Then
MsgBox d.Value & " not found."
End
Else
d.Offset(0, 12) = val.Value
End If
Next
只要函数找到一个值,代码就可以正常工作,但在第一个没有找到的值上会出错。在同一行设置 val 变量和 运行 Find 函数,我从其他论坛获得的。但这似乎根本不起作用。 Find 在找不到值时仍然会感到困惑。
提前致谢。
.Offset(0, 26)
有问题。不要将任何调用链接到 Find
调用,而是仅在 Offset
之后 确保 Find
成功。
还可以考虑使用 Val
之外的另一个变量名,因为它会影响 Val
函数。
Dim rng as Range
Set rng = adws.Range("O2:O" & lrw).Find(d.Value, , xlValues, xlWhole)
If rng Is Nothing Then
MsgBox d.Value & " not found."
End
Else
d.Offset(0, 12).Value = rng.Offset(0, 26).Value ' Offset here since Find succeeded
End If
我知道这可能有广泛的覆盖范围,我已经尝试了其中的一些,但仍然无法正常工作:
Dim d As Range
For Each d In orng
Dim val As Range
Set val = adws.Range("O2:O" & lrw).Find(d.Value, , xlValues, xlWhole).Offset(0, 26)
If val Is Nothing Then
MsgBox d.Value & " not found."
End
Else
d.Offset(0, 12) = val.Value
End If
Next
只要函数找到一个值,代码就可以正常工作,但在第一个没有找到的值上会出错。在同一行设置 val 变量和 运行 Find 函数,我从其他论坛获得的。但这似乎根本不起作用。 Find 在找不到值时仍然会感到困惑。
提前致谢。
.Offset(0, 26)
有问题。不要将任何调用链接到 Find
调用,而是仅在 Offset
之后 确保 Find
成功。
还可以考虑使用 Val
之外的另一个变量名,因为它会影响 Val
函数。
Dim rng as Range
Set rng = adws.Range("O2:O" & lrw).Find(d.Value, , xlValues, xlWhole)
If rng Is Nothing Then
MsgBox d.Value & " not found."
End
Else
d.Offset(0, 12).Value = rng.Offset(0, 26).Value ' Offset here since Find succeeded
End If