用variables改变形状的颜色

我遇到了改变形状颜色的问题。 我有这个颜色数据库

BK = RGB(0, 0, 0) 'Black BN = RGB(140, 78, 2) 'Brown RD = RGB(239, 2, 2) 'Red OG = RGB(255, 192, 0) 'Orange YE = RGB(255, 255, 0) 'Yellow GN = RGB(0, 176, 80) 'Green BU = RGB(0, 176, 240) 'Blue VT = RGB(112, 48, 160) 'Violet GY = RGB(113, 113, 113) 'Grey WH = RGB(255, 255, 255) 'White 

和这段代码读取单元格中的一些数据并返回前两个string成员。

 color_value1 = .Range("D9").Value wire_color1 = Mid(color_value1, 1, 2) 

wire_color1返回像WH,GY,VT等文本,我想主动改变一个形状的颜色wire_color1返回什么。 问题是这样的:

 m.Shapes("wire_1").Fill.ForeColor.RGB = wire_color1 

不起作用,我不知道还有什么要做

谢谢 !

您不能使用表示其名称的string来引用variables。 你将需要build立一个函数(也许使用Select Case),将string(例如)“BK”映射到RGB值。

 m.Shapes("wire_1").Fill.ForeColor.RGB = MyRGB(wire_color1) 

function:

 Function MyRGB(clr as String) Select Case clr Case "BK": MyRGB = RGB(0, 0, 0) 'Black Case "BN": MyRGB = RGB(140, 78, 2) 'Brown Case "RD": MyRGB = RGB(239, 2, 2) 'Red 'etc... End Select End function