【问题标题】:Color values in Excel VBAExcel VBA 中的颜色值
【发布时间】:2018-11-03 03:46:55
【问题描述】:

我已经做了一些搜索,但找不到答案(或者可能在错误的地方寻找:/)

我正在尝试查找 excel VBA 中使用的颜色值的参考。我有几行简单的代码可以更改选定单元格中的背景颜色(在这种情况下,我使用一个简单的宏来调用代码)。

我遇到了这个由宏记录器生成的值:

Selection.Interior.Color = 15773696

我的偏好是使用 RGB(上例的 RGB 等价物是 128、128、128),我一直在尝试找出宏记录器从哪里得到这个值。

如果这是一个常见问题,我们深表歉意。

TIA

【问题讨论】:

  • 你说 上面例子的 RGB 等值是 128, 128, 128) 好吧,抱歉,不是。 15773696 的 RGB 为 0 176 240

标签: excel vba


【解决方案1】:

以 RGB 格式转换输出:


Option Explicit

Public Sub ConvertColor()

    Convert2RGB 15773696

End Sub

Public Sub Convert2RGB(ByVal clr As Long)

    Dim R As Long, G As Long, B As Long

    R = clr Mod 256
    G = clr \ 256 Mod 256
    B = clr \ 65536 Mod 256

    'Or
    'R = clr And 255
    'G = clr \ 256 And 255
    'B = clr \ 256 ^ 2 And 255

    Debug.Print "R:" & R & " G:" & G & " B:" & B    '15773696 -> R:0 G:176 B:240

    Debug.Print RGB(R, G, B)                        'R:0 G:176 B:240 -> 15773696

End Sub

来自 SO:Return RGB values from Range.Interior.Color (or any other Color Property)

...该数字是 RGB 值的数学组合 (B256^2 + G256 + R) 和十六进制颜色值到十进制数的转换 (基数 16 到基数 10)...

...我们是典型的十六进制数字的十进制转换 习惯于在 html 中查看颜色,例如“66FF66”...


更多详情(外部链接):Determining the RGB Value of a Color

【讨论】:

  • 感谢您花时间回答。赞赏:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 2015-10-07
  • 2013-11-29
相关资源
最近更新 更多