我需要编写一个函数 SaveFileWithParagraphs ,它接受路径,文件名和段落集合(从不同的单词文档中提取),然后简单地将这些段落写入新文档中。相同的风格等。
到目前为止我所拥有的:
Sub SaveFileWithParagraphs(path As String, name As String, paras As Collection)
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Dim i As Integer
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
With wrdDoc
For Each p In paras
.Content.InsertAfter p.Range.Text
Next
.SaveAs (path + "\" + name)
.Close ' close the document
End With
wrdApp.Quit ' close the Word application
End Sub
这个问题是我松开了段落的样式,因为它只复制纯文本。关于如何解决这个问题的任何想法?
修改
感谢Cominterns回答我得到了这个:
' ...
With wrdDoc
For Each p In paras
p.Range.Copy
Selection.EndKey Unit:=wdStory
.Content.Paste
Next
End With
' ...
复制我的段落保留所有样式。只剩下一个小问题:每当复制一个新段落时,它都会覆盖以前复制的段落,这样最后只有最后一段保留在文档中。这似乎是一个容易解决的问题,但我无法让它发挥作用。任何进一步的帮助非常感谢。 :)
答案 0 :(得分:1)
p.Range.Text
就是那个 - 文本。如果要保留格式,可以复制范围然后粘贴:
Dim target As Range
With wrdDoc
For Each p In paras
p.Range.Copy
Set target = .Range
target.Collapse wdCollapseEnd
target.PasteAndFormat wdFormatOriginalFormatting
Next
.SaveAs (path + "\" + name)
.Close ' close the document
End With