在 Microsoft Word 中更改 header 个制表位

Change header tab stops in Microsoft Word

我正在尝试创建一个工具来以编程方式替换大量文档上的 header。我选择使用VBS是因为我熟悉它,而且它不需要在用户的计算机上安装任何软件。

我正在使用这个子程序删除现有的 header:

Sub clearHeader()
    Dim oSection

    For Each oSection In objDoc.Sections 
        For Each oFF In oSection.Headers 
            oFF.Range.Delete
        Next 
    Next 
End Sub 

不幸的是,这也将 tab stops 更改为非标准维度。 (如果我在空白文档上使用该子例程,则不会发生此更改,因此它必须基于我要处理的文档的格式。)

此时最好的选择似乎是简单地将制表位设置在它们应该在的位置,而不管它们在第一步之后最终在哪里。

我正在使用以下子例程尝试调整 header 内的制表位,但收到错误消息:

"Object doesn't support this property and method: 'thisHeader.TabStops'"

Sub moveTab()
    Dim thisSection

    For Each thisSection In objDoc.Sections 
        For Each thisHeader In thisSection.Headers 
            For Each aTab In thisHeader.TabStops
                par.TabStops(432).Position = 468
            Next
        Next 
    Next  
End Sub

我只是对 Object 面向编程有点熟悉,所以如果这是一个直截了当的错误,我深表歉意。

我试过在 Word 中制作宏,然后将 VBA 翻译成 VBS,但收效甚微。

那是因为 TabStops 不是 HeaderFooter class 的成员。

Paragraphsclass的成员,但是,您可以通过Range属性访问它HeaderFooter.

例如,这将为每种 header/footer 类型(主页、首页、偶数页)在 2.5" 处添加一个制表位:

Dim thisHeader ' As HeaderFooter
For Each thisHeader In thisSection.Headers
    thisHeader.Range.Paragraphs.TabStops.Add objWord.InchesToPoints(2.5)
Next