给整个列的非空单元格上色

时间:2019-06-06 22:12:16

标签: excel vba conditional-formatting

我想为工作表中列的非空单元格上色。 我更喜欢使用条件格式

当我不使用vb​​a进行设置时,它看起来像: wanted formating

我尝试过

.Columns(7).FormatConditions.Add(Type:=xlExpression,_
     Formula1:="=G:G<> """"").Interior.Color = MyFormating

范围还可以,但是公式不起作用

1 个答案:

答案 0 :(得分:1)

尝试:.Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=G1<> """"").Interior.Color = MyFormating

简要说明:

条件格式将假定提供的公式适用于该条件适用的范围中的第一个单元格(左上)。然后,Excel将调整每个单元格的公式。 (只要引用不是绝对的)

因此,如果您的条件适用于范围G:G,Excel将使用以下条件公式:

对于G1.Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=G1<> """"").Interior.Color = MyFormating

对于G2.Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=G2<> """"").Interior.Color = MyFormating

对于G3.Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=G3<> """"").Interior.Color = MyFormating

以此类推。

这在两个方向上都适用,因此,如果将条件应用于多个列(例如G:L),则会得到:

对于H1: .Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=H1<> """"").Interior.Color = MyFormating

对于I1.Columns(7).FormatConditions.Add(Type:=xlExpression,_ Formula1:="=I1<> """"").Interior.Color = MyFormating

以此类推