在Excel 2013中根据hex值填充颜色的单元格

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

从所做的研究到现在,我明白VBA应该首先将HEXstring转换为RGB通讯logging,然后用结果填充单元格颜色。

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

下面是VBA如何看,find(这里)的例子。 问题是在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和Functions外面的唯一代码行是variables声明和诸如Option语句的东西(例如Option Explicit)