Я искал справедливый бит на этом и других форумах, но я не могу заставить код работать. Я знаю, что это ошибка пользователя - я изучаю/самоучка на этом.Вставка таблицы в открытый документ Word по закладке
Я хочу скопировать (правда, большую) таблицу в конкретный рабочий лист Excel в уже открытый документ Word в определенной точке. Я видел это, используя поиск по ключевым словам, но я бы предпочел использовать закладку (и я сделал работу с закладкой!) Исключительно потому, что она не видна конечному пользователю. Я пытаюсь максимально автоматизировать создание документа.
Приведенный ниже код работает, но я могу заставить его работать только тогда, когда документ Word закрыт. Если я попытаюсь запустить этот суб, когда слово doc открыто, оно просто пытается его снова открыть и, конечно же, не сможет. Я не могу найти аккуратный бит кода, который позволяет мне вставлять данные в уже открытый документ.
Кроме того, я могу сделать эту работу для одного значения, но не для диапазона (т. Е. Таблицы, которую я хочу вставить).
Sub ExcelRangeToWord()
Dim objWord As Object
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Summary")
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
'Optimize Code
Application.ScreenUpdating = False
Application.EnableEvents = False
'open the word doc
objWord.Documents.Open "K:\Exeter Office\Quotebuilder project\testbed\test.docx" 'change as required
'pastes the value of cell I19 at the "heatlosses" bookmark
With objWord.ActiveDocument
.Bookmarks("heatlosses").Range.Text = ws.Range("I19").Value
End With
'Optimize Code
Set objWord = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
'Clear The Clipboard
Application.CutCopyMode = False
End Sub
Я пытаюсь решить этот шаг в то время, потому то у меня есть малейший шанс понимания вещи немного лучше ...
Если я пытаюсь копировать/вставить диапазон, а не только одного значения, я использую CurrentRegion, чтобы выбрать все используемые клетки, окружающие B19:
With objWord.ActiveDocument
.Bookmarks("heatlosses").Range.Text = Range("B19").CurrentRegion
End With
Все это делает вставить слово «Правда» в Word.
Я сбит с толку. Пожалуйста, может кто-нибудь предложить помощь?
Эта ссылка должна помочь вам: http://www.ozgrid.com/forum/showthread.php?t=148798&p=535255#post535255 – R3uK