我正在尝试根据简单文本文件的内容插入一系列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
答案 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)但在脚本的上下文中看起来没问题。第二个是当我录制宏并输入文本
时单词的作用