今天在做时序图,填充单元格颜色的时候,想让使用者从源单元格的颜色,来确定填充时单元格的颜色。用宏录制是:
Sub Macro3()
Range("D4:G8").Select
With Selection.Interior
.Pattern = xlPatternSolid
.ThemeColor = 7
.TintAndShade = 0.4
.PatternColorIndex = -4105
End With
End Sub
其中颜色是ThemeColor表示的,开始填充的时候我把这个颜色定义为int类型,结果发现有时候会有色差甚至有时候还不对。colorIndex 我又定义为int类型,同样的情况。
最后看Color的时候发现类型要定义为Variant类型,然后修改了,没有色差了。
最后我选择了用color获得值类型为Variant,赋值也是Variant类型,解决问题。不过我还是不明白:color 、colorIndex 、ThemeColor三者的不同,我想大概是返回值的标识方法不一样,本质应该是一样的吧。
Dim 颜色值 As Variant '定义颜色变量类型为Variant
颜色值 = Sheets("表格配置").Range("C4").Interior.Color '获取颜色值
Cells(行号, 列号).Interior.Color = 颜色值 '赋值颜色值