首页 > 解决方案 > 如何根据单元格填充颜色更改单元格的值

问题描述

我在excel中有一个电子表格,其中有三种类型的单元格。黑色单元格、黄色单元格和没有填充的单元格。我正在尝试编写代码,以便黑色单元格包含值1、黄色单元格值2和无填充单元格值0

到目前为止,这就是我为黑色和黄色单元格所拥有的:

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 = 255255 'Yellow
                    .Value = 2
            End Select
        End With
    Next
    Application.DisplayAlerts = False


End Sub

这适用于我的电子表格中填充为黑色的单元格:它们现在都包含 value 1。但是,我的单元格填充为黄色,没有任何改变。

我认为这可能与错误的 HEX 代码有关,但我也尝试过2552550```255255000``。黄色单元格用 excel 标准颜色中的黄色填充,如下所示。

excel标准颜色

标签: excelvba

解决方案


你的黄色值错误;它应该是65535。这可以通过多种方式验证:

  1. 选择一个黄色单元格并进入? ActiveCell.Interior.Color即时窗口并按Enter
  2. 进入? vbYellow即时窗口并按下Enter
  3. 进入? RGB(255, 255, 0)即时窗口并按下Enter

在您的代码中,您可以分别使用vbBlackandvbYellow而不是0and 65535


推荐阅读