VBA 根据单元格颜色,填充其他单元格颜色时注意的问题

在使用VBA根据单元格颜色填充时遇到色差问题,通过宏录制发现颜色值应定义为Variant类型,解决了色差问题。分析了ThemeColor、colorIndex和Color三者的差异,可能与返回值表示方式有关,虽然本质相同。此外,还发现主题颜色选择与颜色深浅变化存在关联,系数调整会影响颜色效果。
摘要由CSDN通过智能技术生成

今天在做时序图,填充单元格颜色的时候,想让使用者从源单元格的颜色,来确定填充时单元格的颜色。用宏录制是:

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 = 颜色值  '赋值颜色值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值