2013-07-25 7 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 

Есть целый ряд других методов Paste, если вы не хотите, чтобы вставить в таблицу Excel. Используйте Word VB Editor, чтобы обнаружить их, или Word Macro Recorder.

Смежные вопросы