2013-07-25 96 views
1

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

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

这当然是重要的部分:

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

1

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

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

有一些其他的粘贴方法,如果你不希望粘贴为Excel表格。使用Word的VB编辑器来发现这些,或Word宏记录器。

相关问题