设置页眉和页脚的背景颜色

时间:2020-05-26 04:35:09

标签: vba ms-word

我已经能够使用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

enter image description here

以下是屏幕截图,显示了带颜色的正文表和未更改的标题。 与正文表颜色不同,Word设计器可能从未显示过“页眉/页脚”颜色,而是仅在运行时才显示这种颜色吗?

感谢您提供任何其他信息。

1 个答案:

答案 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'的值-您的已发布代码未显示。您的代码也有可能解决了错误的页眉/页脚(即,可能不是您需要解决的主要页眉/页脚)。