在 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 的成员。
它是Paragraphs
class的成员,但是,您可以通过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
我正在尝试创建一个工具来以编程方式替换大量文档上的 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 的成员。
它是Paragraphs
class的成员,但是,您可以通过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