我有Word文档,其中的表具有颜色编码的单元格,我想通过更改其颜色以使其与单元格颜色匹配来“隐藏”每个单元格的某些单词。
我有一个VBA脚本,可以从数组列表中搜索单词并成功找到它们,但是我无法获取这些单词来将颜色更改为单元格背景颜色。
#define SET_SOME_BITS(Var, StartBitNumber, NumberOfBits, Value2Set) ((Var) & ~(((1<<(NumberOfBits))-1)<<(StartBitNumber)) | (Value2Set)<<(StartBitNumber))
我的期望是,在任何单元格中找到该单词时,代码的.Replacement部分会将单词颜色更改为backColor变量值,但文本颜色不会更改。
答案 0 :(得分:0)
我认为您面临的问题是您的单元格颜色未设置为任何颜色,并且使用默认颜色-16777216
(与wdColorAutomatic
相同),您正在设置自动颜色以及您的文字(通常为黑色)。
如果单元格背景始终为白色,则可以执行.Font.Color = wdColorWhite
,否则可以检查默认值,即:
...
backColor = C.Shading.BackgroundPatternColor 'the color I want to change the found text to
If backColor = -16777216 Then backColor = wdColorWhite
...
否则,如果在背景上设置了任何颜色,它将使用该颜色。