具有预期结果
的样本数据
Sub HighlightDuplicateRows()
Dim ws As Worksheet
Set ws = ActiveSheet ' Change this to the appropriate worksheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Change "A" to the column where the data starts
Dim firstNames As Object
Set firstNames = CreateObject("Scripting.Dictionary")
Dim lastNames As Object
Set lastNames = CreateObject("Scripting.Dictionary")
Dim uniqueIDs As Object
Set uniqueIDs = CreateObject("Scripting.Dictionary")
Dim i As Long
For i = 2 To lastRow ' Assuming headers are in row 1
Dim firstName As String
firstName = ws.Cells(i, "A").Value ' Change "A" to the appropriate column for first name
Dim lastName As String
lastName = ws.Cells(i, "B").Value ' Change "B" to the appropriate column for last name
Dim uniqueID As String
uniqueID = ws.Cells(i, "C").Value ' Change "C" to the appropriate column for unique ID
If firstNames.Exists(firstName) And lastNames.Exists(lastName) And uniqueIDs.Exists(uniqueID) Then
' Highlight the original row
Dim origRow As Variant
origRow = Application.Match(firstName & lastName & uniqueID, _
ws.Range("A2:C" & i - 1), 0)
If IsNumeric(origRow) Then
ws.Rows(origRow).Interior.Color = RGB(255, 255, 0) ' Highlight the row yellow
End If
' Highlight the current row
ws.Rows(i).Interior.Color = RGB(255, 255, 0) ' Highlight the row yellow
Else
firstNames(firstName) = True
lastNames(lastName) = True
uniqueIDs(uniqueID) = True
End If
Next i
End Sub
我试图突出显示重复行和特定行规则1:如果First,Last name和Unique id重复多次,则突出显示行Rule 2:如果First,Last name重复多次且唯一id包含STATEWIDE,则突出显示该行,表示未选择正确的行
有人能帮忙吗?
1条答案
按热度按时间tcomlyy61#
通常的方法根本不是使用VBA。
1.按State、Lastname、Firstname和UniqueID对列表进行排序
1.在整个表范围内输入两个条件格式公式
a.第一个-
=OR($E2=$E1,$E2=$E3)
将背景格式化为黄色B.第二个-
=OR(AND($A2=$A1,$B2=$B1,$D2=$D1),AND($A2=$A3,$B2=$B3,$D2=$D3))
背景为橙子重要的是不要在数字前面有美元符号锚
最后,如果出于某种原因,您仍然希望在VBA中使用它,您仍然应该遵循以下算法:在VBA中对整个表进行排序,然后在整个表上创建条件公式。警告,条件公式在VBA中有些棘手;数据结构复杂。