Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel VBA中将单元格字符串值RGB转换为颜色数?_Vba_Excel_Colors - Fatal编程技术网

如何在Excel VBA中将单元格字符串值RGB转换为颜色数?

如何在Excel VBA中将单元格字符串值RGB转换为颜色数?,vba,excel,colors,Vba,Excel,Colors,我有包含颜色值的单元格,即: RGB0,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").

我有包含颜色值的单元格,即:

RGB0,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

不能将字符串解释为代码变量/函数

换句话说,您不能期望将其写入字符串:

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),")","")
如果在单元格中始终写入RGB0、10、20等相同的模式,可以考虑创建一个自定义函数,返回三个数字:

Private Function splitRGB(ByVal vl As String) As Integer()
    splitRGB = yourArrayWithTheThreeValues '(split as above)
End Function    

只是想补充一点,您可以使用Application.evaluate或[SUM5,1]实际计算代码-不幸的是,没有RGB公式,尽管您可以通过创建自定义函数来解决这一问题,但我相信您最终将不得不拆分它,因此很遗憾,您没有保存任何内容。您真正想要做的是[RGB100100100],不幸的是,它不能工作,因为RGB是VBA函数。我实际上是在玩这个概念。@matteo您缺少一个括号,但它可以工作,谢谢SheetsSheet3.Cellsj,4.Interior.color=RGBReplaceSplitcolor,0,RGB,Splitcolor,1,replaceSpiltcolor,2,@user1274820不幸的是,应用程序的Evaluate方法不能计算代码变量,只能计算电子表格函数。