我在这个和其他论坛上搜索了一些,但我无法获得代码。我知道这是用户错误 - 我正在学习/自学成才。
我想要的是将特定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。
我很困惑。请问,有人可以提供协助吗?
答案 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