2016-11-03 57 views
0

我正在寻找循环遍历列A,并突出显示单元格,如果列C中的值不对应表中的值。例如:如果值不匹配表,高亮 - VBA

Columns A:C

Table

在第一个图像,你可以在第3行中看到,名称为“张三”有用户“RKE”这是不正确的用户,当引用表。我可以设置以下,但我卡在那里。

Application.ScreenUpdating = False 
Dim i As Integer 

Sheets("Added(Physical)").Select 
Range("A1").Select 
lrow = Range(Selection, Selection.End(xlDown)).Count 

For i = 2 To lrow 

    If Cells(1, i).Value = worksheetapplication.if().Value Then 

     i.Interior.Color = 5287936 
    End If 

Next i 

在逻辑上,我会运行柱A和C一VLOOKUP,并且如果存在对VLOOKUP错误,则单元格颜色将需要被突出显示。

任何人有任何想法呢?

+1

为什么不使用条件格式使用一个公式? –

+0

我在寻找更有活力的东西。感谢您的想法! –

回答

0

我结束了使用下面的剪断里面:

For i = 2 To lrow 

Cells(i, 1).Activate 
x = Application.VLookup(ActiveCell.Offset(0, 0).Value, Worksheets("MiscDefinitions").Range("G1:H11"), 2, False) 
    If x <> Cells(i, 4).Value Then 
     Cells(i, 4).Interior.Color = RGB(255, 0, 0) 
    Else 
    End If 
Next i 
0

你不能使用vlookup,因为无论列C是什么,它都会找到“Smith,John”。如果返回0(未找到),则使用多个条件countifs,然后为它着色。

Application.CountIfs(Range("A4:A9"), Cells(1, 1).Value, Range("C4:C9"), Cells(1, 3).Value) 

范围将是您的查找表(固定范围)。 cells.value将会是你要找的东西。你可以把你的循环,即细胞(1 + N,1)

+0

我最终得到了Applicaiton.Vlookup的工作。我知道这并不完美,但下面是我最终使用的代码: For i = 2 To lrow Cells(i,1).Activate x = Application.VLookup(ActiveCell.Offset(0,0).Value ,工作表(“MiscDefinitions”)。范围(“G1:H11”),2,False) 如果x <>单元格(i,4).Value Then 单元格(i,4).Interior.Color = RGB(255 ,0,0) Else End If –