如何用条件格式填充整行?

时间:2017-09-15 10:51:43

标签: excel excel-vba conditional-formatting vba

我有以下代码:这只填充列a中的行,我希望填充所有列。

Sheets("Schedule").Cells.Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=m1=""Part"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorAccent1
    .TintAndShade = 0.399945066682943
End With

我已经让它选择所有细胞来解决这个问题,但它没有用到

2 个答案:

答案 0 :(得分:2)

中的公式
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=M1=""Part"""

不正确。只需使用

Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$M1=""Part"""
相反,它会起作用。

注意:
这里的差异是$前面的M,它可以确保列固定,但行1不是并且可以迭代。

我建议不要使用.SelectSelection.(这是不好的做法,应该始终)。
您的代码可以像这样改进:

With Sheets("Schedule").Cells
    .FormatConditions.Add Type:=xlExpression, Formula1:="=$M1=""Part"""
    .FormatConditions(.FormatConditions.Count).SetFirstPriority
    With .FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = 0.399945066682943
    End With
End With

答案 1 :(得分:0)

如果您希望工作表中的所有单元格在有单词" Part"时变为蓝色。那么你应该使用这个代码。

Sheets("Schedule").Cells.Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A1=""Part"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorAccent1
    .TintAndShade = 0.399945066682943
End With

如果你想要条件从" M"在列中,您应该使用此行Sheets("Schedule").range("M:AAA").select代替Sheets("Schedule").Cells.Select