将值从Excel中的范围复制到Word中的书签

时间:2013-07-25 18:46:30

标签: excel excel-vba vba

以下代码将单个值复制到Word中的书签中。我需要它来复制一系列值,如“A6:G20”。

Sub test()
Dim objWord As Object
Dim ws As Worksheet

Set ws = Workbooks("Portfolio1").Sheets("Print")
Set objWord = CreateObject("Word.Application")

objWord.Visible = True
objWord.Documents.Open "D:Q.docx" ' change as required

With objWord.ActiveDocument
 .Bookmarks("monthtable").Range.Text = ws.Range("C6").Value ' here I need range of values to be selected instead of a single cell
End With
Set objWord = Nothing
End Sub 

2 个答案:

答案 0 :(得分:1)

如果合适,您可以复制并粘贴范围:

Range("A6:G20").Copy
.Bookmarks("monthtable").Range.PasteExcelTable False, False, False

如果您不想粘贴为Excel表,还有许多其他粘贴方法。使用Word的VB编辑器来发现这些,或Word宏记录器。

答案 1 :(得分:0)

这当然是重要的部分:

With objWord.ActiveDocument    
.Bookmarks("monthtable").Range.Text = ws.Range("C6").Value ' here i need range of values to be selected instead of a single cell
End With

在这里,您需要循环遍历ws.Range(“...”),对于该范围内的每个单元格,将该值连接到.Bookmarks.Range.Text值(而不是比设置它相等,这将覆盖)。首先将它连接成一个字符串变量然后将书签设置为该字符串变量的值可能是一个好主意,因为这样可以避免一些潜在的互操作问题。