我正在寻找一种使用宏自动删除给定范围内的重复项的方法,但我所能找到的只是:它要么从列表中删除重复项,要么从单元格中删除重复项。
我思考了一下,开始的过程如下:
1-) 使用条件格式显示范围内的所有重复项
2-) 使用宏删除所有通过条件格式突出显示的单元格
但我卡在第二步。那么有没有办法删除被宏着色的单元格?(请问如何继续?)
谢谢
答案1
如果我正确理解了你的任务描述,那么这段代码将完成这项工作:
Sub DeleteDoublesFromSelection()
Dim rSourceRange As Range, oCell As Range, aArea As Range
Dim cDictionary As Variant
Dim sCellTextRepresentation As String
Set cDictionary = CreateObject("Scripting.Dictionary")
Set rSourceRange = Selection
For Each aArea In rSourceRange.Areas
For Each oCell In aArea.Cells
sCellTextRepresentation = oCell.Text
If sCellTextRepresentation <> vbNullString Then
If cDictionary.Exists(sCellTextRepresentation) Then
oCell.Clear
Else
cDictionary.Add sCellTextRepresentation, oCell
End If
End If
Next oCell
Next aArea
End Sub
再次强调,条件格式是一种可视化工具,而不是计算工具。用它来删除重复项不是一个好主意