VBA脚本设置单元格不为空时的背景色

时间:2018-07-10 10:29:19

标签: excel vba

只是从Excel 2016中的VBA开始。.
我正在尝试找出一个脚本来为非空单元格提供背景色 这就是我得到的:

If Range("a3:g8").Value = "" Then
  Interior.Color = RGB(222, 244, 180)
End If

但是它不起作用。我在做什么错了?

3 个答案:

答案 0 :(得分:0)

您可以将单元格定义为单个变量并循环通过。参见下面的代码

Dim rng As Range, cell As Range
Set rng = Range("a3:g8")

For Each cell In rng
    If cell.Value = "" Then
        cell.Interior.Color = RGB(222, 244, 180)

    End If
Next

答案 1 :(得分:0)

要定位空白单元格,

With Range("a3:g8")
    .FormatConditions.Delete
    with .FormatConditions.Add(Type:=xlExpression, Formula1:="=A3=TEXT(,)")
        .Interior.Color = RGB(222, 244, 180)
    end with
End With

要定位非空单元格,

With Range("a3:g8")
    .FormatConditions.Delete
    with .FormatConditions.Add(Type:=xlExpression, Formula1:="=A3<>=TEXT(,)")
        .Interior.Color = RGB(222, 244, 180)
    end with
End With

答案 2 :(得分:0)

您要尝试的是将整个范围的值与“”进行比较,这将引发类型不匹配错误。您将必须一一检查每个单元格的值,或尝试使用简单的Excel公式的以下代码:

 If WorksheetFunction.CountA(Range("A3:G8")) = 0 Then
       Range("A3:G8").Interior.Color = RGB(222, 244, 180)
 Else
       MsgBox "Range has some value"
 End If