Excel VBAloop如果数组相等,则高亮显示行

Excel VBAloop如果数组相等,则高亮显示行,excel,vba,Excel,Vba,我想做的是,如果ws2中的ID与ws1中的数组相同,则高亮显示这些行。我应该修改什么 Sub Macro2() Dim i, i2 As Long Dim LastRow, LastRow2 As Long Dim ws1 As Worksheet Set ws1 = Worksheets("ws1") Dim ws2 As Worksheet Set ws2 = Worksheets("ws2") With ws1

我想做的是,如果ws2中的ID与ws1中的数组相同,则高亮显示这些行。我应该修改什么

Sub Macro2()

Dim i, i2 As Long
Dim LastRow, LastRow2 As Long
    
Dim ws1 As Worksheet
Set ws1 = Worksheets("ws1")

Dim ws2 As Worksheet
Set ws2 = Worksheets("ws2")

    With ws1
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
    With ws2
        LastRow2 = .Cells(.Rows.Count, "D").End(xlUp).Row
    End With

    For i = 1 To LastRow
        For i2 = 1 To LastRow2
            If ws1.Range("A" & i).Value = ws2.Range("D" & i2).Value Then
                ws2.Range("D" & i).Interior.ColorIndex = 37
            End If
        Next
    Next




End Sub

为什么需要修改?-代码输出有什么问题?假设您只想突出显示ws2行,只需将
ws2.Range(“D”&i).Interior.ColorIndex=37
行中的
i
更改为
i2
。我还将在该行的正下方添加一个
出口(位于最后一端If的上方),这将有助于防止不必要的循环。只有在没有重复项的情况下才添加它。为什么不在条件格式规则中使用VLookup呢?不需要VBA代码。谢谢@Simon,这真的解决了我的问题。@FunThomas因为我总是需要做这件事,所以我想让它自动化。