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.
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
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?