1

我正在尝试对 2 组中的大量列进行条件格式设置。我不确定如何记录一个宏,该宏将从活动单元格中选择整个列及其旁边的列,然后应用条件格式。然后向下移动两个单元格并重复。

这是我到目前为止所拥有的,但它会继续回到那些特定的单元格,我需要它向右移动 2。

Sub findDups()
'
' findDups Macro

    ActiveCell.EntireColumn.Select

    Selection.FormatConditions.AddUniqueValues
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).DupeUnique = xlDuplicate
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("M1").Select

    Worksheets("User Check List").Activate
    Selection.Offset(0, 2).Select
End Sub
4

1 回答 1

1

这应该可以帮助您入门。我完全避免使用Selection,仅用ActiveCell作知道从哪里开始宏的一种手段。最好,您可以使用 an 来做到这一点,Application.InputBox但这没什么大不了的。

因为我不知道你想让它循环多少次,所以我使用了一个Do ... Loop语句,这将一直持续到列号 > 26。你可以在Loop Until ...语句中更改它。

Sub findDups()
Dim startCell As Range
Dim formatCols As Range

Set startCell = ActiveCell

Do
    Set formatCols = startCell.Resize(1, 2).EntireColumn

    formatCols.FormatConditions.AddUniqueValues
    formatCols.FormatConditions(formatCols.FormatConditions.Count).SetFirstPriority
    formatCols.FormatConditions(1).DupeUnique = xlDuplicate
    With formatCols.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With formatCols.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With

    Set startCell = startCell.Offset(0, 2)

Loop Until startCell.Column >= 26

End Sub

以下是输出格式的示例:

在此处输入图像描述

于 2013-06-20T21:16:48.740 回答