在它们之间插入包含换行符的字段

时间:2013-08-11 04:27:38

标签: vba ms-word field word-vba

我正在尝试根据简单文本文件的内容插入一系列Word字段,但是当我运行此代码时,它会将所有字段一起插入并在所有字段之后汇集所有换行符而不是在每个字段之间插入换行符。请告诉我,我做错了什么?

Option Explicit

Sub AddFields()

    Dim fileName As String
    fileName = InputBox("Filename containing field list")

    Dim fso As New Scripting.FileSystemObject
    Dim fileStream As Scripting.TextStream
    Set fileStream = fso.OpenTextFile(fileName, ForReading, False)

    Dim line As String
    While Not fileStream.AtEndOfStream
        line = fileStream.ReadLine

        Selection.Range.InsertBreak WdBreakType.wdLineBreak

        AddField line

    Wend

End Sub

Sub AddField(mergeFieldName As String)

    Dim fieldText As String
    fieldText = "MERGEFIELD  " & mergeFieldName & " "

    ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=fieldText, PreserveFormatting:=False

End Sub

1 个答案:

答案 0 :(得分:1)

我也找不到好的解释。

如果你把它们放在而不是你的InsertBreak行,这两个都有效:

Selection.InsertBreak WdBreakType.wdTextWrappingBreak 

Selection.TypeParagraph

第一个含义略有不同(参见http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.wdbreaktype(v=office.14).aspx)但在脚本的上下文中看起来没问题。第二个是当我录制宏并输入文本

时单词的作用