2013-08-27 83 views
1

我需要比较Column BSheet 2Column CSheet 3,并突出显示具有匹配数据的单元格Column B (Sheet 2)使用Excel VBA比较列和突出显示匹配数据

曾用下面的公式条件格式

与格式类型是一个

特定颜色黄说Interior.colorindex = 6

如何实施使用代码在VBA同一工作=NOT(ISNA(VLOOKUP(Sheet3!C,Sheet2!B,1,FALSE)))

回答

0

,你可以做这样的

Sub CompareAndHighlight() 

    Dim rng1 As Range, rng2 As Range, i As Long, j As Long 
    For i = 1 To Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row 
     Set rng1 = Sheets("Sheet2").Range("B" & i) 
     For j = 1 To Sheets("Sheet3").Range("C" & Rows.Count).End(xlUp).Row 
      Set rng2 = Sheets("Sheet3").Range("C" & j) 
      If StrComp(Trim(rng1.Text), Trim(rng2.Text), vbTextCompare) = 0 Then 
       rng1.Interior.Color = RGB(255, 255, 0) 
      End If 
      Set rng2 = Nothing 
     Next j 
     Set rng1 = Nothing 
    Next i 

End Sub 

代码检查在Sheet2中B列的所有细胞免受表Sheet 3列C各小区以及如果它们匹配它强调在Sheet2的细胞在B列中黄色

+0

该代码运作良好。我没有更清楚地提出我的问题。上面的代码比较了工作表2中的b2和工作表3中的c2,等等。我希望工作表3中的每个值都与另一列中的所有值进行检查。为此需要另一个循环。你能编辑代码来添加上面提到的规范和空白单元格的错误处理吗? – Alcapone

+0

我已经为您编辑了代码,以便它遍历Sheet3上列C中的所有单元格。你对空白单元格的错误处理意味着什么? – 2013-08-27 13:31:06

0

我会这样做:

Dim c As Range 

For Each c In Range("sheet2!b:b") 
    If c.Value <> "" And Sheets("Sheet3").Cells(c.Row, 3).Value = c.Value Then 
     c.Interior.Color = vbYellow 
    End If 
Next 
相关问题