对象所需错误VBA Iserror和vlookup
我在下面的代码行中得到了对象必需的错误对象所需错误VBA Iserror和vlookup,vba,Vba,我在下面的代码行中得到了对象必需的错误 Set Flag = "If(Application.WorksheetFunction.IsError(Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, Offset1).Value, abcd.Value, 1, False)),False,True)" If (Flag = True) Then ActiveCell.Value = "abc" 其中,abcd是
Set Flag = "If(Application.WorksheetFunction.IsError(Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, Offset1).Value, abcd.Value, 1, False)),False,True)"
If (Flag = True) Then
ActiveCell.Value = "abc"
其中,abcd是一个命名范围。
有人能提出纠正这个错误的方法吗?我对vlookup函数有些疑虑。我不明白你想做的一切,但是
Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, Offset1).Value, abcd.Value, 1, False)
看起来很不稳定
如果使用
Application.WorksheetFunction.VLookup()
,则不匹配将导致运行时错误,您需要使用On error
捕获该错误
如果改为使用Application.VLookup()
,则在不匹配的情况下返回一个错误值-您可以使用IsError()
不能将
标志设置为字符串。然而,它看起来可能是一个布尔标志?这么小的代码很难说你想在这里做什么?Flag
定义为什么?为什么不使用VBA来处理if语句和搜索?@Gareth是对的。如果您开始在VBA中工作,应该很快避免使用工作表函数,而是使用VBA函数。有关在范围中查找值的信息,请参阅
If IsError(Application.VLookup(ActiveCell.Offset(0, Offset1).Value, _
Range("abcd"), 1, False)) Then
ActiveCell.Value = "abc"