【问题标题】:Can excel data be pushed into a existing word document at a specific place可以将excel数据推送到特定位置的现有word文档中吗
【发布时间】:2019-01-22 06:53:42
【问题描述】:

我需要将表格复制到现有的 Word 文档中 我需要将数据粘贴到 word 文档中的特定位置,例如在书签之后

我有一个可以复制和粘贴的代码,但不能复制到现有文档中。 我尝试扩展/更改代码,但不知道如何粘贴到目标。

Sub PasteIntoWord()

    Dim WrdApp As Word.Application
    Dim WrdDoc As Word.Document
    Dim objWord
    Dim ExcRng As Range
    Set WrdApp = New Word.Application
        WrdApp.Visible = True
        WrdApp.Activate
    Set WrdDoc = WrdApp.Documents.Add
    Set ExcRng = ActiveSheet.Range("testdata")
    ExcRng.copy
    WrdDoc.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False,    WordFormatting:=True, RTF:=False
    Application.CutCopyMode = False

End Sub

这可行,并粘贴到新文档中。 但我想将数据粘贴到此文档中:wordApp.Documents.Open "c:\users\peter\documents\Data skal ind her.docm"

我需要在这里:

Here is text part 1
And I would like to have my “testdata” pasted here:

Xxx

This is bookmark ”xxx”

最好的问候 彼得 pg@pb.dk

【问题讨论】:

  • Set WrdDoc = WrdApp.Documents.Add 的行正在创建一个新的空文档。你希望它是Set WrdDoc = WrdApp.Documents.Open(path)。然后,您需要在该文档中找到正确的 Bookmark - 并相对于该书签的位置进行粘贴。
  • 谢谢马修。这是一个很大的帮助。你有没有想过如何在书签“xxx”之后粘贴数据?
  • 我对 Word 自动化不是很熟悉,但我相信有人会看到您的帖子。目标文档是否定义了书签的名称?你试过Dim mark As Word.Bookmark: Set mark = WrdDoc.Bookmarks("nameOfTheBookmark")之类的吗?
  • 你好,马修。我发现。问候彼得
  • 程序员不使用**用户的**剪贴板。用户控制剪贴板的内容。您正在覆盖用户放置在剪贴板上的数据。使用range.FormattedText 之类的东西。

标签: excel vba ms-word


【解决方案1】:

我找到了这个 Word MVP 文档,它提供了更新书签文本的功能。我已将其添加到您的示例代码中:

Sub PasteIntoWord()
    Dim WrdApp As Word.Application
    Dim WrdDoc As Word.Document
    Dim objWord
    Dim ExcRng As Range
    Set WrdApp = New Word.Application
        WrdApp.Visible = True
        WrdApp.Activate
    Set WrdDoc = wordApp.Documents.Open "c:\users\peter\documents\Data skal ind her.docm"

    Set ExcRng = ActiveSheet.Range("testdata")

    UpdateBookmark "xxx", ExcRng 
End Sub

Sub UpdateBookmark(BookmarkToUpdate As String, PasteRange As Variant)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange = PasteRange 
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub

来源:https://wordmvp.com/FAQs/MacrosVBA/InsertingTextAtBookmark.htm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多