1

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

2 回答 2

1

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

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

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

于 2013-07-25T18:59:21.797 回答
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 值上(而不是将其设置为相等,这会覆盖)。首先将其连接到一个字符串变量中,然后将书签设置为该字符串变量的值,这可能是一个好主意,因为这样可以避免一些潜在的互操作问题。

于 2013-07-25T18:54:26.077 回答