我正在尝试对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
答案 0 :(得分:1)
这应该可以帮助您入门。我完全避免使用Selection
,只使用ActiveCell
作为了解开始宏的方法。优选地,您可以使用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
以下是输出格式的示例: