【问题标题】:VBA Vlookup mismatchVBA Vlookup 不匹配
【发布时间】:2018-03-09 05:58:56
【问题描述】:

我在 sheet4 中有要查找的单元格,查找表在 sheet2 Range("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

【问题讨论】:

  • 那是因为它找不到范围内的值,它试图在一个整数中输入一个错误。
  • 请告诉我如何解决这个问题。非常感谢,因为我是 vba 的新手

标签: vba vlookup


【解决方案1】:

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

【讨论】:

  • 这是很棒的东西
  • 谢谢。请快速提问。我应该在此代码中添加什么,以便代码还突出显示 Sheet4.Cells(i, 1) 中出现但在 Range("A16") 中根本不存在的任何单元格
猜你喜欢
  • 2017-10-28
  • 1970-01-01
  • 2021-08-25
  • 2023-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
相关资源
最近更新 更多