我有一个包含大量表格的Word 2007文档。每个表都有一些填充了2种自定义颜色的单元格。我创建了一个宏,它输入3个值来提供RGB功能,创建其中一种颜色,将颜色与每种颜色相匹配,然后用新颜色更改匹配。
我使用If
语句,将填充单元格的颜色与RGB函数返回的颜色进行比较,并使用用户提供的输入函数。
If ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor = RGB(inputRed, inputGreen, inputBlue) Then
'code
end if
当我查看文档以查看结果时,我注意到3个表格中的一些单元格留有旧颜色,显然宏观无法识别它。
在Word 2007中,我选择了应该更改颜色的单元格。我去了 Home - >阴影 - >更多颜色 - >自定义并看到3个值与用户输入的3个值完美匹配。
在盯着显示器30分钟后,我想去看医生检查眼睛。 :)
在此之前,我开始调试应用程序。在每个未更改的单元格上。检查此行:
ActiveDocument.Tables(k).Range.Cells(j).Shading.BackgroundPatternColor
我看到它返回 -1 。
我认为-1相当于null或nil,意味着单元格未填充,但如果是,为什么我能看到RGB值?或者系统可能无法读取RGB值,但究竟谁是这个系统?
您是否有一个明确解释Shading.BackgroundPatternColor
方法的链接?
答案 0 :(得分:1)
我不知道值为-1,但Word 2007中的颜色稍有变化,因此值不再是RGB值。我已就此发表了大量文章 - 请参阅http://www.wordarticles.com/Articles/Colours/2007.php