根据单元格的十六进制值在Excel 2013中为其填充颜色

马修

我有一个电子表格,其中A列中的单元格包含其十六进制格式的颜色。是否可以使用与十六进制值匹配的颜色自动填充相邻的单元格?

从到目前为止的研究中,我了解到VBA应该首先将HEX字符串转换为它的RGB对应字符串,然后用结果填充单元格颜色。

例如:如果A1包含值“ 7fcac3”(或“#7fcac3”,但我认为英镑不是必需的),则VBA应该用RGB(127,202,195)填充相邻的B单元。

以下是找到的VBA外观示例(在此处)问题是我在Excel 2013中收到“编译错误:无效的外部过程”错误。

For i = 1 To LastRow

Sub SetHexColors()
Dim i, LastRow
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
Cells(i, "B").Interior.Color = HEXCOL2RGB(Cells(i, "A"))
Next
End Sub

Public Function HEXCOL2RGB(ByVal HexColor As String) As String
Dim Red As String, Green As String, Blue As String
HexColor = Replace(HexColor, "#", "")
Red = Val("&H" & Mid(HexColor, 1, 2))
Green = Val("&H" & Mid(HexColor, 3, 2))
Blue = Val("&H" & Mid(HexColor, 5, 2))
HEXCOL2RGB = RGB(Red, Green, Blue)
End Function 

非常感谢,Mathieu

马克·巴尔霍夫

第一行代码:

For i = 1 To LastRow

不在Sub或Function内部。看起来这是您在Sub SetHexColors中已经拥有的行的副本,因此我希望您只需要注释掉或删除第一行即可。您可以在Subs和Function之外放入的唯一代码行是变量声明和诸如Option语句之类的东西(例如Option Explicit)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据单元格中的十六进制值设置自动彩色背景?

使用openpyxl将Excel单元格背景主题的颜色获取为十六进制

如何使用单元格内的十六进制颜色值突出显示单元格(但对于最新版本的 Excel)

获取单元格颜色的十六进制

MigraDoc-从十六进制设置单元格颜色

有什么办法可以使用NPOI在Excel文档中从'#72fe9c'这样的十六进制值向单元格添加颜色

如果前一个单元格包含十六进制颜色名称,如何更改单元格的颜色?

APACHE POI 4.1:从十六进制代码设置单元格背景颜色

Excel VBA根据之前的单元格中的值填充空白单元格

如何根据填充颜色在单元格中显示值 - Excel VBA 中的事件

根据逻辑填充Excel单元格值

Excel公式根据单元格的颜色分配值

如何在Excel中输入十六进制颜色值?

在Java中以十六进制形式获取.xls工作表中单元格的文本和背景色

根据单元格的值为单元格着色的 Excel 规则/宏

如何根据单元格值在Excel中过滤列

根据单元格值在Excel中更改弧长

根据单元格值隐藏 Excel 中的行

根据excel中单元格的值获取整行

根据匹配条件在Excel中替换单元格值

根据单元格的值在Excel中隐藏多列

在excel中根据单个单元格的值创建数组

根据Excel VBA中的公式创建单元格值

根据Excel中的另一个单元格计算单元格的值

根据与单元格关联的值在Excel中突出显示单元格

在LaTex / MathJax中为颜色使用十六进制值

将十六进制转换为十进制并将结果合并到Matlab中的一个单元格中

根据其左侧单元格的值在熊猫数据框中填充NaN值

如何根据单元格填充颜色更改单元格的值