请使用下一个功能。它将字符串转换为 Long 颜色(基于 RGB 三个参数。它适用于逗号分隔符(“,”和“,”)的大小写:
Function ExtractRGB(strRGB As String) As Long
Dim arr: arr = Split(Replace(strRGB, " ", ""), ",")
ExtractRGB = RGB(CLng(Right(arr(0), Len(arr(0)) - 4)), CLng(arr(1)), CLng(left(arr(2), Len(arr(2)) - 1)))
End Function
可以用下一种方式测试:
Sub TestExtractRGB()
Dim x As String, color As Long
x = "RGB(100,10,255)"
x = "RGB(100, 10, 255)"
color = ExtractRGB(x)
Debug.Print color
Worksheet("Sheet1").Range("A2:I2").Font.color = color
'or directly:
Worksheet("Sheet1").Range("A2:I2").Font.color = _
ExtractRGB(Worksheet("Sheet1").Range("J2").value)
End Sub
如果您评论x = "RGB(100, 10, 255)",它将返回与之前的x字符串相同的颜色值...
如果您需要对所有现有行执行此操作,则代码必须从 2 迭代到最后一行,您只需将“A2:I2”更改为 "A" & i & ":I" & i
如果有必要,我可以教你怎么处理,不过我觉得很简单……