将表格粘贴到书签

时间:2015-11-09 09:53:46

标签: excel vba excel-vba copy-paste

我在这个和其他论坛上搜索了一些,但我无法获得代码。我知道这是用户错误 - 我正在学习/自学成才。

我想要的是将特定Excel工作表中的(无可否认的大表)复制到特定点的已打开的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。

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

1 个答案:

答案 0 :(得分:0)

使用以下代码达到您的要求:

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