我有一个电子表格,A列中的单元格包含十六进制颜色。是否可以自动填充相邻单元格以匹配HEX值的颜色?
从目前的研究来看,我了解到VBA首先应将HEX字符串转换为其RGB对应项,然后使用结果填充单元格颜色。
例如:如果A1包含值“7fcac3”(或“#7fcac3”,但我认为不需要井号),则VBA应使用RGB(127,202,195)填充相邻的B单元格。
以下是VBA的示例,找到(此处)。问题是我在Excel 2013中遇到“编译错误:无效的程序外部”错误。
许多感谢, 马修
从目前的研究来看,我了解到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
许多感谢, 马修