在Excel中将范围内的值复制到书签中

下面的代码将单个值复制到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 

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

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

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

这当然是重要的部分:

 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值(而不是将其设置为相等,这会覆盖)。 首先将它连接到一个stringvariables,然后将书签设置为该stringvariables的值可能是一个好主意,因为这样可以避免一些潜在的互操作问题。