2013-08-11 2 views
0

Я пытаюсь вставить ряд полей 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

Я также не могу найти хорошее объяснение.

Обе эти работы, если вы поместите их вместо вашей InsertBreak линии:

Selection.InsertBreak WdBreakType.wdTextWrappingBreak 

Selection.TypeParagraph 

Первый имеет несколько иное значение (см http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.wdbreaktype(v=office.14).aspx), но он выглядит нормально в контексте вашего сценария. Второе - это то, что слово делает, когда я записываю макрос и набираю текст

+0

Отлично, 'InsertBreak wdTextWrappingBreak' отлично работает, спасибо! – Dai

Смежные вопросы