获取Excel单元格背景颜色hex值

我想要使​​用公式或VGA来获取Excel工作表中单元格的背景颜色。 我发现这个UDF:

Public Function BColor(r As Range) As Long BColor = r(1).Interior.ColorIndex End Function 

它可以像这样在一个单元格中使用: =BColor(A1)我不熟悉VGA,这将返回一些长的值,我不知道是否有可能直接获得hex值。 谢谢!

尝试这个

 Function HexCode(Cell As Range) As String HexCode = Right("000000" & Hex(Cell.Interior.Color), 6) End Function 

我试过上面的代码,但它返回了一个BGR值(如build议)

但是,这段代码返回一个RGBhex值。 我只是不能让它自动更新。

 Public Function HexCodeRGB(cell As Range) As String HexCodeBGR = Right("000000" & Hex(cell.Interior.Color), 6) HexCodeRGB = Right(HexCodeBGR, 2) & Mid(HexCodeBGR, 3, 2) & Left(HexCodeBGR, 2) End Function 

祝你好运

基于最好的投票答案,这里是一个真实的例子,我的情况。 我提供它作为一个macros和一个截图。 我希望这可以帮助别人。

VBAmacros很简单,但我会粘贴在这里。 如果你看附件,你会看到我已经复制了该列,并清除了西class牙语的颜色名称和标题栏“颜色”,我没有运行这个macros:

 Sub printHEXBGColor() Set r = Range("myRange") Dim HEXcolor As String Dim i As Long For i = 1 To r.Rows.Count r.Cells(i, 1).Activate HEXcolor = "#" + Right("000000" & Hex(ActiveCell.Interior.Color), 6) ActiveCell = HEXcolor Next i End Sub 

结果的屏幕截图