【问题标题】:How to change value of cell in excel with no fill如何在没有填充的情况下更改excel中单元格的值
【发布时间】:2020-09-10 09:40:19
【问题描述】:

我在 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

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    使用vbWhite16777215

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

    【讨论】:

      【解决方案2】:

      Color 无法区分 NoFillWhite!?

      由于vbWhite16777215Color 属性一起使用将允许写入白色未填充 单元格,我建议您使用@ 987654327@财产。

      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
      

      或:

      If .Interior.ColorIndex = xlNone Then
          .Value = 0          ' No Fill
      Else
          Select Case .Interior.Color
              Case Is = 0     ' Black
                  .Value = 1
              Case Is = 65535 ' Yellow
                  .Value = 2
              Case Else
          End Select
      End If
      

      【讨论】:

      • 您必须使用第二个代码 sn-p... 因为颜色索引会根据当前的调色板而变化(我猜你知道)。
      • 我完全忘记了这一点。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 2015-12-02
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多