53、设置图形的颜色与单元格颜色一致。通过转换颜色成GRB格式做的,
91rCrrLu.rar
(37.66 KB, 下载次数: 142)
,代码:
Private Sub CommandButton1_Click()
Dim R%, G%, B%
Dim p As Shape
Dim rng As Range
For Each p In Me.Shapes '在图形里做一个循环
If InStr(1, p.Name, "Freeform") Then '假设图形名称里保护Freeform时(任意多边形)
Set rng = Range("i:i").Find(p.AlternativeText, lookat:=xlWhole) '查找任意多边形的web选项里的值,是否在I列有
If Not rng Is Nothing Then '如果找到的话,则
Set_RGB rng.Offset(0, 3).Interior.Color, R, G, B '直接用列表框里的颜色值做,好像不可以,只好转换成RGB格式的了
p.Fill.ForeColor.RGB = RGB(R, G, B) '自选图形的前景色,可以用列表里颜色对应的值,也可以用RGB格式的颜色值
End If
End If
Next
End Sub
Sub Set_RGB(ByVal myColor As Long, ByRef R%, ByRef G%, ByRef B%) '转换子过程,把长整型的转为RGB格式的数据
R = myColor Mod 256
G = myColor \ 256 Mod 256 '这样固定的东西可以直接引用,我也是down的别人的
B = myColor \ 256 \ 256
End Sub
【附】本例好像可以不用RGB来转换,直接可以这样赋值p.Fill.ForeColor.RGB = rng.Offset(0, 3).Interior.Color就可以了
[此贴子已经被作者于2005-10-20 8:55:43编辑过] |