我已经能够使用oSourceTable.Shading.BackgroundPatternColor = wdRed
更改文档正文中Word表的背景颜色。但是,相同的代码不适用于页眉或页脚Word表。我也尝试过设置Section的背面颜色,但无济于事。该代码运行,但是页眉和页脚始终以白色背景显示。
我主要完成Excel VBA,只有一点点Word VBA,所以也许我在这里遗漏了一些明显的东西。预先感谢您的任何想法和/或建议。
根据要求,这是我正在使用的代码。 vTableBackColors只是颜色的数组。该代码用于主体表,并且运行良好。
For Each oWordTable In oWordDoc.Tables
lIndex = lIndex + 1
oWordTable.Shading.BackgroundPatternColor = vTableBackColors(lIndex)
Next
我试图对页眉和页脚表执行相同的操作,但是它不起作用。我尝试使用下面的Header / Footer表。
For Each oWordSection In oWordDoc.Sections
For Each oWordTable In oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Tables
' I selected this one to see if it would make a difference.
oWordTable.Select
oWordTable.Shading.BackgroundPatternColor = m_HeaderBackColor
Next
For Each oWordTable In oWordSection.Footers.Item(wdHeaderFooterPrimary).Range.Tables
oWordTable.Shading.BackgroundPatternColor = m_FooterBackColor
Next
Next
我也尝试过直接使用Section Headers / Footers。检查前后,表明BackgroundPatternColor已根据需要进行了更改,但未显示。
oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Shading.BackgroundPatternColor = m_HeaderBackColor
以下是屏幕截图,显示了带颜色的正文表和未更改的标题。 与正文表颜色不同,Word设计器可能从未显示过“页眉/页脚”颜色,而是仅在运行时才显示这种颜色吗?
感谢您提供任何其他信息。
答案 0 :(得分:0)
«我已经能够使用oSourceTable.Shading.BackgroundPatternColor = red。来更改文档正文中Word表的背景颜色。»除非您将“ red”定义为RGB值,否则该方法将无效。
对于页眉/页脚问题,这对我有用:
For Each oWordSection In oWordDoc.Sections
For Each oWordTable In oWordSection.Headers.Item(wdHeaderFooterPrimary).Range.Tables
oWordTable.Shading.BackgroundPatternColorIndex = wdRed
Next
For Each oWordTable In oWordSection.Footers.Item(wdHeaderFooterPrimary).Range.Tables
oWordTable.Shading.BackgroundPatternColorIndex = wdRed
Next
Next
也许您的根本问题在于分配给'm_HeaderBackColor'和'm_FooterBackColor'的值-您的已发布代码未显示。您的代码也有可能解决了错误的页眉/页脚(即,可能不是您需要解决的主要页眉/页脚)。