对象必需错误VBA Iserror和vlookup

时间:2015-09-01 20:21:49

标签: 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是命名范围。 有人可以建议纠正这个错误的方法吗?

2 个答案:

答案 0 :(得分:0)

我对vlookup函数有些疑虑。我不明白你想要做的一切,但是

Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, Offset1).Value, abcd.Value, 1, False)

看起来不太好。

  1. 你的第二个任期是abcd.Value。这需要是一系列细胞。
  2. 你的第三个值是1. vlookup的第一列是为索引保留的,而不是可检索的值,所以我认为你不能在这里得到值1。

答案 1 :(得分:0)

如果您使用Application.WorksheetFunction.VLookup(),则不匹配将导致运行时错误,您需要使用On Error进行陷阱。

如果您改为使用Application.VLookup(),则会在未匹配的情况下返回错误值 - 您可以使用IsError()

进行测试
If IsError(Application.VLookup(ActiveCell.Offset(0, Offset1).Value, _
                                           Range("abcd"), 1, False)) Then

    ActiveCell.Value = "abc"