Excel:使用VBA获取单元格的背景颜色

时间:2015-07-29 17:53:36

标签: excel vba excel-vba excel-2010

我需要获取单元格AU5的RGB值(填充黑色),但我的函数显示G53的RGB值。我只是不知道,如何将细胞的值传递给函数....

enter image description here enter image description here

这是VBA中的一个函数:

enter image description here

也许有人可以帮忙修复它?

2 个答案:

答案 0 :(得分:6)

只需将indirect()包裹在您的单元格ref周围。因此,在G54中,使用=getRGB(Indirect(G53))

如果没有indirect()getRGB()函数会查找您指向的单元格,在本例中为G53。由于您希望公式查看G53中的内容,并使用 引用,只需添加indirect()

答案 1 :(得分:2)

让自己的功能变得更轻松 - 这也可能对您有所帮助:

Function getRGB(RefCell As String) As String

    Dim mystr As String
    Dim rng As Range
    Set rng = Range(RefCell & ":" & RefCell)
    Application.Volatile
    mystr = Right("000000" & Hex(rng.Interior.Color), 6)
    getRGB = Application.Hex2Dec(Right(mystr, 2)) & ", " & _
            Application.Hex2Dec(Mid(mystr, 3, 2)) & ", " & _
            Application.Hex2Dec(Left(mystr, 2))

End Function

在Excel中,执行以下操作:

=getRGB("AU5")

' Result: 0, 0, 0