我想使用UDF公式或VBA获得Excel工作表中单元格的背景色。我发现了这个UDF:
Public Function BColor(r As Range) As Long
BColor = r(1).Interior.ColorIndex
End Function
它可以像这样在一个单元格中使用:=BColor(A1)
我不熟悉VBA,它返回一些长值,我想知道是否可以直接获得十六进制值。谢谢!
发布于 2014-02-06 16:55:02
尝尝这个
Function HexCode(Cell As Range) As String
HexCode = Right("000000" & Hex(Cell.Interior.Color), 6)
End Function
发布于 2016-01-03 02:40:23
我尝试了上面的代码,但它返回了一个BGR值(按照建议)
但是,此代码返回一个RGB十六进制值。我就是不能让它自动更新。
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
祝好运
发布于 2017-01-11 04:44:56
基于最佳投票结果,这里有一个真实案例的例子,我的案例。我提供它作为一个宏和一个截图。我希望这能帮助一些人。
VBA宏很简单,但我将把它粘贴到这里。如果你看一下附件,你会发现我复制了这一列,清除了西班牙语的颜色名称,标题为" color ",我确实运行了这个宏:
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
https://stackoverflow.com/questions/21597734
复制相似问题