Excel 使用变量更改形状颜色
我在更改形状的颜色时遇到问题。我有这个颜色数据库Excel 使用变量更改形状颜色,excel,vba,rgb,Excel,Vba,Rgb,我在更改形状的颜色时遇到问题。我有这个颜色数据库 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
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
这段代码读取单元格中的一些数据并返回前两个字符串成员
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
不行,我不知道还能做什么
谢谢大家! 不能使用表示变量名称的字符串引用变量。您需要使用Select Case构建一个函数,该函数将字符串eg BK映射为RGB值
m.Shapes("wire_1").Fill.ForeColor.RGB = MyRGB(wire_color1)
功能:
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
您需要使用wire_color1的值从颜色数据库中查找RGB值,而不是直接使用它。返回什么颜色_value1?