我在sheet4中有要查找的单元格,查找表在sheet2范围内(" A16:B25")。当我运行此代码时,它给了我mismatch error
。为什么要这样做?
Dim i As Integer
Dim lrow As Long
Dim x As Integer
Sheet4.Activate
lrow = Sheet4.Range("A" & Rows.count).End(xlUp).Row
For i = 2 To lrow
Cells(i, 1).Activate
x = Application.VLookup(ActiveCell.Offset(0, 0).Value, Worksheets(2).Range("A16:B25"), 2, False)
If x <> Cells(i, 2).Value Then
Cells(i, 2).Interior.Color = RGB(255, 0, 0)
Else
End If
Next i
答案 0 :(得分:2)
1:除非绝对必要,否则不需要激活任何东西。使用显式引用(workbook.worksheet.cell或.range) 2:您需要检查vlookup是否返回错误。 3:ActiveCell.Offset(0,0).Value只是活动单元,因为你没有偏移。
尝试将此代码添加到您的代码中,您可能需要根据具体用途进行调整。
sub lookup_color()
Dim i As Integer
Dim lrow As Long
Dim vReturnVal As Variant
lrow = Sheet4.Range("A" & Rows.count).End(xlUp).Row
For i = 2 To lrow
vReturnVal = Application.VLookup(Sheet4.Cells(i, 1).Value, Worksheets(2).Range("A16:B25"), 2, False)
If Not IsError(vReturnVal) Then
If vReturnVa <> Sheet4.Cells(i, 2).Value Then
Sheet4.Cells(i, 2).Interior.Color = RGB(255, 0, 0)
End If
End iF
Next i
End sub