使用VBA从word文档中检索段落

时间:2016-05-30 20:30:52

标签: vba ms-word

以下代码允许我使用VBA插入word文档中的段落(保留原始格式)

Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(aFile)

WordDoc.Paragraphs(2).Range.Copy
Selection.Paste

WordDoc.Close
WordApp.Quit

然而,有任何更快的方法(不涉及打开一个单词的实例,然后关闭它)

2 个答案:

答案 0 :(得分:1)

我不知道您不想打开文件的原因(可能有人正在使用),但您可以复制该文件并使用克隆文件。这样您就不会打开原始文件:P

答案 1 :(得分:0)

以下工作完美,但确实需要额外的阶段。

以下代码会将Word文档插入当前文档

Selection.InsertFile "C:\myFile.docx"

如果我想要一个特定的段落,那么我可以通过为每个段落添加书签来准备word文档。 (使用VBA这是相对简单的)

Sub StripAllBookmarks()
    Dim stBookmark As Bookmark
    ActiveDocument.Bookmarks.ShowHidden = True
    If ActiveDocument.Bookmarks.Count >= 1 Then
       For Each stBookmark In ActiveDocument.Bookmarks
          stBookmark.Delete
       Next stBookmark
    End If
End Sub
Sub addBookmarks()
  StripAllBookmarks
  c = 1
  For Each para In ActiveDocument.Paragraphs
    ActiveDocument.Bookmarks.Add Name:="B" + Trim(c), Range:=para.Range
    c = c + 1
  Next para
End Sub

让我们说第一段的书签设置为“B1”,第二段的书签设置为“B2”。以下代码将立即添加第一段

Selection.InsertFile "C:\myFile.docx", Range:="b1"