【问题标题】:Pasting a table into open Word document at a bookmark在书签处将表格粘贴到打开的 Word 文档中
【发布时间】:2015-11-09 18:58:04
【问题描述】:

我在这个论坛和其他论坛上进行了相当多的搜索,但我无法让代码工作。我知道这是用户错误 - 我正在学习/自学。

我想要的是在特定点将特定 Excel 工作表中的(公认很大)表复制到已经打开的 Word 文档中。我已经看到使用关键字搜索完成了这项工作,但我更喜欢使用书签(并且我已经使书签工作!)纯粹是因为最终用户看不到它。我正在尝试尽可能地自动创建文档。

以下代码有效,但我只能在相关 Word 文档关闭时才能使其工作。如果我尝试在 word doc 打开时运行此子程序,它只会尝试重新打开它,当然不能。我找不到可以将数据粘贴到已经打开的文档中的代码。

另外,我可以使这个工作适用于一个值,但不适用于一个范围(即我要粘贴的表格)。

Sub ExcelRangeToWord()


Dim objWord As Object
Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Summary")
    Set objWord = CreateObject("Word.Application")

    objWord.Visible = True


'Optimize Code
  Application.ScreenUpdating = False
  Application.EnableEvents = False


  'open the word doc
      objWord.Documents.Open "K:\Exeter Office\Quotebuilder project\testbed\test.docx" 'change as required


'pastes the value of cell I19 at the "heatlosses" bookmark
    With objWord.ActiveDocument
        .Bookmarks("heatlosses").Range.Text = ws.Range("I19").Value
    End With

'Optimize Code
Set objWord = Nothing
  Application.ScreenUpdating = True
  Application.EnableEvents = True

'Clear The Clipboard
  Application.CutCopyMode = False

End Sub

我正在尝试一步一步地解决这个问题,因为这样我就有一半的机会更好地理解事物......

如果我尝试复制/粘贴一个范围,而不是一个值,我会使用 Currentregion 来选择 B19 周围所有使用过的单元格:

With objWord.ActiveDocument
        .Bookmarks("heatlosses").Range.Text = Range("B19").CurrentRegion
    End With

这只是将单词“True”粘贴到 Word 中。

我很困惑。请问,有人可以提供帮助吗?

【问题讨论】:

标签: vba excel copy-paste


【解决方案1】:

使用下面的代码来实现你所需要的:

Sub CopyToWord()

    Dim wApp, wDoc

    'Get the running word application
    Set wApp = GetObject(, "Word.Application")

    'select the open document you want to paste into
    Set wDoc = wApp.documents("test.docx")

    'copy what you want to paste from excel
    Sheet1.Range("A1").copy    

    'select the word range you want to paste into
    wDoc.bookmarks("heatlosses").Select

    'and paste the clipboard contents
    wApp.Selection.Paste

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多