如何在没有填充的情况下更改Excel中单元格的值

时间:2020-09-10 00:34:06

标签: excel vba

我在excel中有一个电子表格,其中彩色单元格包含值,而没有填充的单元格为空。我希望所有没有填充颜色的单元格都具有值0。我有用来分别给黑色和黄色单元格值12的代码。

Sub changeValuesBasedOnColour()

    Dim rg As Range
    Dim xRg As Range
    Set xRg = Selection.Cells
    Application.DisplayAlerts = False
    For Each rg In xRg
        With rg
            Select Case .Interior.Color
                Case Is = 0   'Black
                    .Value = 1
                Case Is = 65535 'Yellow
                    .Value = 2
                Case Is = xlNone
                    .Value = 0
                
             End Select
        End With
    Next
    Application.DisplayAlerts = False

End Sub

我已经编辑了用于根据填充颜色更改单元格值的代码,以包括此部分:

 Case Is = xlNone
   .Value = 0

但是我的电子表格没有任何变化。如何编辑代码以引用没有填充颜色的单元格?

2 个答案:

答案 0 :(得分:2)

使用datavbWhite

16777215适用于单元格的xlNone,与.Interior.ColorIndex不同。

答案 1 :(得分:0)

master/file2不能与Color区别NoFill!?

由于与White属性一起使用的vbWhite16777215将允许写入白色未填充单元格,建议您使用Color属性。

ColorIndex

或:

Select Case .Interior.ColorIndex
    Case Is = 1 ' Black
        .Value = 1
    Case Is = 6 ' Yellow
        .Value = 2
    Case Is = xlNone ' No color
        .Value = 0
     Case Else
End Select