【发布时间】:2014-08-04 14:28:08
【问题描述】:
在 vba 中,我想从工作表中的单元格中读取颜色,以便为条形图中的特定条形着色。我的问题是我有 4F9F92 格式的颜色,但要在 makro 中读取它,我需要使用单元格中的 excel 颜色代码 4076202。有没有办法在 vba 代码中转换这两种格式...?我知道在即时窗口中我可以做
?rgb(170,50,62)
导致
4076202
在 vba 代码中,我使用以下命令读取颜色
ser.Points(p).Interior.Color = arr(s, p)
其中 s 和 p 是通过具有不同颜色代码的数组运行的两个 runnign 变量。
有没有可能我可以为每个单元格设置一个函数,在该单元格中输入一个值,例如 4F9F92,以自动将其转换为 4076202 格式,以便 makro 可以读取它?
【问题讨论】:
-
如果你知道/可以计算RGB,那么你可以不使用
ser.Points(p).Interior.Color.RGB=RGB(R,G,B) -
它未经测试,我可以补充一下,我现在没有打开 Excel(但应该是类似的)
-
其实,如果你使用
"&" & arr(s,p),你会得到什么?由于我在代码中看到的大多数十六进制都是&4F9F92的形式,所以认为它应该可以工作(前提是它事先将它作为字符串处理得足够好) -
我错过了什么吗?
?CDec("&H" & "4F9F92")给了我5218194而不是4076202。要获得4076202,我们必须使用3E32AA。例如?CDec("&H" & "3E32AA") -
我使用 ?RGB(170,50,62) 给出 4076202 而 RGB (170,50,62) 是 4F9F92