vba - 将表格粘贴到打开的 Word 文档中的书签处

标签 vba excel copy-paste

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

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

下面的代码可以工作,但只有当相关的 Word 文档关闭时我才能让它工作。如果我尝试在单词文档打开时运行此子程序,它只会尝试重新打开它,当然不能。我找不到允许我将数据粘贴到已打开的文档中的简洁代码。

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

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 中。

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

最佳答案

使用下面的代码来实现您的要求:

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

关于vba - 将表格粘贴到打开的 Word 文档中的书签处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606456/

相关文章:

linux - 在 linux (bash) 上选择(标记)并右键单击粘贴功能(如在 cisco 的 IOS 上)

excel - VBA 宏 - 为生成的数据指定新工作表

excel - 根据下拉列表选择更改整个表格行的背景颜色 - 条件格式

excel - 从开始日期和结束日期填写单元格

excel - F#,Office 中的另一个 VBA?

windows - 从 AutoHotKey 脚本捕获 Windows 上空文本的复制/粘贴

vba - Excel VBA - 为联合方法动态提供范围

vba - 控制 PowerPoint 2010 VSTO 中悬挂的缩进

java - Apache POI - 读取具有值的单元格时获取空指针

vim - 将数据粘贴到 vim 的方法比粘贴模式更快?