我有包含颜色值的单元格,即:
RGB(0, 128, 0)
尝试在VBA中使用此cell.value为我的单元格着色,但我的颜色无法识别。它显示为字符串,但不起作用
"RGB(0, 128, 0)"
如何转换此文本或删除“”以便我的颜色功能正常工作?
While Not Worksheets("Sheet3").Range("A" & j).Value = ""
color = Sheets("Sheet3").Cells(j, 2).Value
Sheets("Sheet3").Cells(j, 4).Interior.color = color
j = j + 1
Wend
答案 0 :(得分:1)
您不能将字符串解释为代码变量/函数。
换句话说,你不能期望用字符串写这个:
str = "a = a + 2"
...并期望您的代码将其读作:
a = a + 2
但是,您可以做的是从字符串中拆分三个数字并在代码中使用它们:
color = Sheets("Sheet3").Cells(j, 2).Value
Sheets("Sheet3").Cells(j,4).Interior.Color = RGB(Replace(Split(color,",")(0),"RGB(",""), Split(color,",")(1), Replace(Split(color,",")(2),")","")
如果你总是有相同的模式(比如在单元格中写的RGB(0,10,20)
),你可以考虑创建一个返回三个数字的自定义函数:
Private Function splitRGB(ByVal vl As String) As Integer()
splitRGB = yourArrayWithTheThreeValues '(split as above)
End Function