2013-08-27 81 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 
相關問題