首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取Excel单元格背景颜色十六进制值

获取Excel单元格背景颜色十六进制值
EN

Stack Overflow用户
提问于 2014-02-06 16:37:24
回答 3查看 25.4K关注 0票数 3

我想使用UDF公式或VBA获得Excel工作表中单元格的背景色。我发现了这个UDF:

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

它可以像这样在一个单元格中使用:=BColor(A1)我不熟悉VBA,它返回一些长值,我想知道是否可以直接获得十六进制值。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-06 16:55:02

尝尝这个

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

Stack Overflow用户

发布于 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

祝好运

票数 3
EN

Stack Overflow用户

发布于 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

Screenshot of the result

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21597734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档