i have some doubt in vba
How to compare two columns and highlight the unmatched data in Excel?
As below screenshot shown, for comparing two columns of adjacent cells and highlighting the unmatched data, you can try the methods in the article.
Recommended Excel Productivity Tools
As the above screenshot, you are comparing the data in Column A and Column B. Please run the following VBA code to highlight the unmatched data.
1. Press Alt + F11 keys simultaneously to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module. Then copy and paste the following code into the Code window.
VBA code: Compare two columns and highlight the unmatched data
Sub Dyeware() Dim xRg1 As Range Dim xRg2 As Range Dim xTxt As String Dim xCell1 As Range Dim xCell2 As Range Dim I As Long Dim J As Integer Dim xLen As Integer Dim xDiffs As Boolean On Error Resume Next If ActiveWindow.RangeSelection.Count > 1 Then xTxt = ActiveWindow.RangeSelection.AddressLocal Else xTxt = ActiveSheet.UsedRange.AddressLocal End If lOne: Set xRg1 = Application.InputBox("Range A:", "Kutools for Excel", xTxt, , , , , 8) If xRg1 Is Nothing Then Exit Sub If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel" GoTo lOne End If lTwo: Set xRg2 = Application.InputBox("Range B:", "Kutools for Excel", "", , , , , 8) If xRg2 Is Nothing Then Exit Sub If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then MsgBox "Multiple ranges or columns have been selected", vbInformation, "Kutools for Excel" GoTo lTwo End If If xRg1.CountLarge <> xRg2.CountLarge Then MsgBox "Two ranges must have the same numbers of cells ", vbInformation, "Kutools for Excel" GoTo lTwo End If xDiffs = (MsgBox("Click Yes to highlight matched data, click No to highlight unmatched data ", vbYesNo + vbQuestion, "Kutools for Excel") = vbNo) Application.ScreenUpdating = False xRg2.Interior.ColorIndex = xlNo xRg1.Interior.ColorIndex = xlNo For I = 1 To xRg1.Count Set xCell1 = xRg1.Cells(I) Set xCell2 = xRg2.Cells(I) If xCell1.Value = xCell2.Value Then If Not xDiffs Then xCell1.Interior.Color = vbRed xCell2.Interior.Color = vbRed End If Else If xDiffs Then xCell1.Interior.Color = vbRed xCell2.Interior.Color = vbRed End If End If Next Application.ScreenUpdating = True End Sub
3. Press the F5 key to run the code. In the popping up Kutools for Excel dialog box, select the first column you need to compare, then click the OK button. See screenshot.
4. Then select the second compared column in the next popping up Kutools for Excel dialog box.
5. In the dialog box as below screenshot shown, for highlighting the unmatched data, please click the No button.
Then all unmatched data between two columns are highlighted immediately. See screenshot:
If you just want to find out and highlight if the cell values in a column exist in another column or not, for example as below screenshot shown, number 2 in column A does not exist in column B. you can try the Compare Ranges utility of Kutools for Excel.
1. Click Kutools > Compare Ranges. See screenshot:
2. In the Compare Ranges dialog box, you need to:
2.1 Select the first column with the unmatched cells you will highlight in the Find values in box;
2.2 Select the second column you want to compare based on in the According to box;
2.3 Choose the Different Values option;
2.4 Check the Fill backcolor box and specify a background color from the drop-down list;
2.5 Click the OK button. See screenshot:
3. Then a dialog box pops up to tell you how many cells which only in column A but not in column B, click the OK button, and all matched cells are selected in column A.
- How to compare two strings for similarity or highlight differences in Excel?
- How to exactly compare two strings (case sensitive) in Excel?