有很多方法可以做到这一点。所有这些都涉及“摧毁”目标
Range
在插入下一个内容(文本或字段代码)之前。
不久前,我编写了一组通用函数,这样就可以轻松地插入文本和字段代码的任意组合,而无需对每个组合进行“调整”。
首先定义
范围
对象如果您想保留任何内容,请将其折叠。程序
InsertNewText
和
InsertNewField
抓住目标
范围
和要插入的文本,分别是要插入的字段的字段代码。崩溃的
范围
在这些过程中完成,并传递回调用过程以进行下一步。
Sub InsertTextAndFields()
Dim rngContent As Word.Range
Set rngContent = wdoc.Sections(1).Headers( _
wdHeaderFooterEvenPages).Shapes(2).TextFrame.TextRange
rngContent.Collapse wdCollapseEnd
Set rngContent = InsertNewText(rngContent, "abc")
Set rngContent = InsertAField(rngContent, "Page")
Set rngContent = InsertNewText(rngContent, "x")
End Sub
Function InsertNewText(rng As word.Range, newText As String) As word.Range
rng.Text = newText
rng.Collapse wdCollapseEnd
Set InsertNewText = rng
End Function
Function InsertAField(rng As word.Range, _
fieldText As String) As word.Range
Dim fld As word.Field
Dim rngField As word.Range
Set fld = rng.Document.Fields.Add(Range:=rng, _
Text:=fieldText, PreserveFormatting:=False)
Set rngField = fld.result
rngField.Collapse wdCollapseEnd
rngField.MoveStart wdCharacter, 1
Set InsertAField = rngField
End Function