excel - 如何根据单元格填充颜色更改单元格的值
问题描述
我在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 标准颜色中的黄色填充,如下所示。
解决方案
你的黄色值错误;它应该是65535
。这可以通过多种方式验证:
- 选择一个黄色单元格并进入
? ActiveCell.Interior.Color
即时窗口并按Enter。 - 进入
? vbYellow
即时窗口并按下Enter。 - 进入
? RGB(255, 255, 0)
即时窗口并按下Enter。
在您的代码中,您可以分别使用vbBlack
andvbYellow
而不是0
and 65535
。
推荐阅读
- python - Python:将列表附加到列表
- android - 从 Django 服务器监听 React Native 应用程序的通知
- windows - .txt 和 .text 文件有什么区别
- javascript - 如何在 Angular 12 中使用 sort() 对数据进行排序?
- python - 新山开始时的昨天日期(Python)
- neo4j - 在 Neo4j GraphQL 2.0 中替代 @additionalLabels
- sprite-kit - SpriteKit:如何保持空 SKLabelNode 的高度
- reactjs - 三重条件渲染
- sql - 如何基于共享键的其他行进行聚合?
- c# - 将文本发送到另一个应用程序 C# WPF 在 Windows 上可运行