以下代码将单个值复制到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
答案 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值(而不是比设置它相等,这将覆盖)。首先将它连接成一个字符串变量然后将书签设置为该字符串变量的值可能是一个好主意,因为这样可以避免一些潜在的互操作问题。