宏用于删除条件格式突出显示的单元格吗?

宏用于删除条件格式突出显示的单元格吗?

我正在寻找一种使用宏自动删除给定范围内的重复项的方法,但我所能找到的只是:它要么从列表中删除重复项,要么从单元格中删除重复项。

我思考了一下,开始的过程如下:

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

再次强调,条件格式是一种可视化工具,而不是计算工具。用它来删除重复项不是一个好主意

相关内容