在Excel

时间:2015-12-26 17:34:07

标签: excel vba excel-vba

如果使用宏进行更新,是否有可能更改单元格的背景颜色?

我正在使用VBA for循环来更新单元格的IF语句。

是否可以在for循环中/更新后更改背景颜色?

Dim cella As Range
For Each cella In Range("D15:AE15").Cells
If cella.Value = 0 And cella.Offset(17).Value = 2 Then
    cella.Value = 1
    cella.Offset(17).Value = 1
    cella.Interior.ColorIndex = 3
End If
Next cella

我尝试在循环中使用内部颜色索引功能,但它似乎不起作用? (我只想为更新的细胞着色)

2 个答案:

答案 0 :(得分:0)

在代码模块中插入Worksheet_change,例如Sheet 1中

Private Sub Worksheet_Change(ByVal Target As Range)
   <your code>
End sub

Target是更改的范围(单元格)

答案 1 :(得分:0)

您正在寻找的是:

        With cella.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
        End With

但是,代码中存在一些语法错误。我根据我所看到的情况做了一些假设,但这完全是正确的:

    For Each cella In Range("A1:B15")
       If cella.Value = 0 And cella.Offset(17, 0).Value = 2 Then

          cella.Value = 1
          cella.Offset(17, 0).Value = 1 'offset syntax is (rows, columns)

          With cella.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
          End With

       End If
    Next cella