3

我一直无法让这个宏工作。如果它不等于通过函数在另一张纸上的相应值,我希望它遍历一个范围并突出显示一个单元格vlookup。但我不断收到此代码错误:

For Each cell In Worksheets("Sheet1").Range("A2:A1000")
    If cell <> Application.WorksheetFunction.VLookup(cell, Worksheets("Sheet2").Range("C3:E128"), 3, 0) Then
        cell.Interior.Color = 65535
    Else
    End If
Next cell

它不断返回

运行时错误“1004”:无法获取 WorksheetFunction 类的 VLookup 属性

非常感谢任何见解!

4

3 回答 3

3

您收到该错误是因为 VLookup 无法找到并返回任何内容。有多种处理方法。这是一个例子。

Sub Sample()
    Dim cell As Range
    Dim Ret

    For Each cell In Worksheets("Sheet1").Range("A2:A1000")
        On Error Resume Next
        Ret = Application.WorksheetFunction.VLookup(cell, _
              Worksheets("Sheet2").Range("C3:E128"), 3, 0)
        On Error GoTo 0

        If Ret <> "" Then
            If cell <> Ret Then
                cell.Interior.Color = 65535
            End If
            Ret = ""
        End If
    Next
End Sub
于 2013-09-27T18:28:08.893 回答
1

试试这个代码

WorksheetFunction.VlookupApplication.Vlookup

On Error Resume Next

For Each cell In Worksheets("Sheet1").Range("A2:A1000")
    Result = Application.VLookup(cell, Worksheets("Sheet2").Range("C3:E128"), 3, 0)

    If Result = "Error 2042" Then
        'nothing found
    ElseIf cell <> Result Then
        cell.Interior.Color = 65535
    End If

Next

On Error GoTo 0
于 2013-09-27T18:27:31.440 回答
0

通常会出现“无法获取 .... WorksheetFunction 的属性”,因为传递给函数的参数有问题。

例如,如果您范围内的任何单元格包含错误,则会发生

于 2013-09-27T18:23:51.753 回答