我一直无法让这个宏工作。我希望它循环遍历一个范围,并通过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属性
非常感谢任何见解!!
答案 0 :(得分: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
答案 1 :(得分:1)
试试此代码
WorksheetFunction.Vlookup v/s Application.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
答案 2 :(得分:0)
通常&#34;无法获取WorksheetFunction的&....属性#34;之所以出现是因为传递给函数的参数有问题。
例如,如果您的范围内的任何单元格包含错误,则会发生错误