我想在文档中每个页面的页脚中标记文档变量字段。我想出了如何添加字段。但是,这样做时,页脚中已经存在的页码字段将被禁用,仅保留文本,而不再充当动态页码。任何帮助将不胜感激。
这是我的代码,该代码添加了该字段,但是以某种方式禁用了页码。 (“ sectionFooter.Range.Text = sectionFooter.Range.Text +”“行是我什至可以找到的页码仍然显示的唯一方法):
For Each docSection In ActiveDocument.Sections
For Each sectionFooter In docSection.Footers
sectionFooter.Range.Collapse wdCollapseEnd
sectionFooter.Range.Text = sectionFooter.Range.Text + " "
sectionFooter.Range.Collapse wdCollapseEnd
Dim newPP As Paragraph
Set newPP = sectionFooter.Range.Paragraphs.Add()
newPP.Range.Font.Size = 8
newPP.Range.Font.Name = "Arial"
ActiveDocument.Fields.Add Range:=newPP.Range, Type:=wdFieldEmpty, Text:="DOCVARIABLE ndGeneratedStamp", preserveformatting:=False
Next
Next
答案 0 :(得分:1)
如果这是您希望新字段定位的方式,请尝试执行以下操作...
Dim docSection As word.Section, sectionFooter As word.HeaderFooter
Dim rng As word.Range
For Each docSection In ActiveDocument.Sections
For Each sectionFooter In docSection.Footers
Set rng = sectionFooter.Range
rng.InsertParagraphAfter
rng.Collapse wdCollapseEnd
rng.Font.Size = 8
rng.Font.Name = "Arial"
rng.Fields.Add Range:=rng, Type:=wdFieldEmpty, Text:="DOCVARIABLE ndGeneratedStamp", PreserveFormatting:=False
Next
Next
答案 1 :(得分:0)
Rich的答案解决了繁重的工作,但是对于发生这种情况的任何人,都想阐明我如何能够隔离新段落并应用字体。
Set rng = sectionFooter.Range
rng.InsertParagraphAfter
Set rng = sectionFooter.Range
rng.Collapse wdCollapseEnd
Set newPP = rng.Paragraphs.Last
newPP.Range.Font.Size = 8
newPP.Range.Font.Name = "Arial"
rng.Fields.Add Range:=newPP.Range, Type:=wdFieldEmpty, Text:="DOCVARIABLE ndGeneratedStamp", preserveformatting:=False
答案 2 :(得分:-1)
根据我的测试,我们也可以删除注释的代码。
注意:如果使用这种方式,则需要先设置页码,然后运行宏。
Dim docSection As Word.Section, sectionFooter As Word.HeaderFooter
For Each docSection In ActiveDocument.Sections
For Each sectionFooter In docSection.Footers
'sectionFooter.Range.Collapse wdCollapseEnd
'sectionFooter.Range.Text = sectionFooter.Range.Text + " "
sectionFooter.Range.Collapse wdCollapseEnd
Dim newPP As Paragraph
Set newPP = sectionFooter.Range.Paragraphs.Add()
newPP.Range.Font.Size = 8
newPP.Range.Font.Name = "Arial"
ActiveDocument.Fields.Add Range:=newPP.Range, Type:=wdFieldEmpty, Text:="DOCVARIABLE ndGeneratedStamp", preserveformatting:=False
Next
Next