1

Тема: открытие ворд из ексель и автозаполнение ворд

Добрый день! Подскажите, пожалуйста. Я создал файл Эксель, далее создал файл Ворд и сделал слияние данных (предположим у меня из таблице Эксель данные тянуться в документ Ворд). Как сделать так, чтобы из Эксель открывался по указанному пути документ Ворд (с которым происходит слияние данных) и при \том данные в файле Ворд обновлялись на актуальные, которые находятся в Эксель и документ Ворд должен открыться как активный документ. Мне написали макрос, я его привязал к кнопке в Эксель, но при нажатии кнопки файл открывается, но не становится активным, т.е. по нему нужно щелкнуть, чтобы перейти в окно Ворд и данные не обновляются на актуальные, которые были указаны в таблице ексель. Заранее спасибо!
Set w = CreateObject("word.application")
w.Visible = True
w.documents.Open "C:\Users\Äìèòðèé\Desktop\ñëèÿíèå\Íîâàÿ ïàïêà\5.docx"
w.Activate

2

Re: открытие ворд из ексель и автозаполнение ворд

Word может сам обновлять  связи, если воспользоваться специальной вставкой. А в Excel приходится писать код для открытия нужных файлов. У вас он уже есть. Если Word не активируется, попробуйте ещё такую инструкцию: AppActivate ("Word")

3

Re: открытие ворд из ексель и автозаполнение ворд

Настаев пишет:

Word может сам обновлять  связи, если воспользоваться специальной вставкой. А в Excel приходится писать код для открытия нужных файлов. У вас он уже есть. Если Word не активируется, попробуйте ещё такую инструкцию: AppActivate ("Word")

Сергей, очень интересно!
В примере, приведенном mt.82, насколько я понимаю, производится открытие нового экземпляра программы Word.
Допустим, у нас открыто несколько экземпляров Word, и в некоторых из них имеется несколько окон.
Можно ли с помощью инструкции AppActivate ("Word") активировать определенный  экземпляр Word и в нем - определенное окно?
Сейчас у меня эта инструкция активирует, видимо, тот экземпляр Word, который был открыт первым.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

4

Re: открытие ворд из ексель и автозаполнение ворд

При создании нового документа в Word он сам становится активным.
Поэтому достаточно просто активировать приложение.
Если нужно открыть несколько файлов, а потом активировать какой-то конкретный, то их надо записывать в переменную. Например: ...

Public Sub Документ_Word()

    Dim w As New Word.Application
    Dim d As Word.Document
    
    'открыть документ и записать его в переменную
    Set d = w.Documents.Open("c:\Users\Сергей\Desktop\мой документ.docx")
    
    'активировать документ
    d.Activate
    
    'отобразить Word
    w.Visible = True
    
    'активировать Word
    w.Activate
    
End Sub

5

Re: открытие ворд из ексель и автозаполнение ворд

Спасибо.

Но у меня в VB Editor Excel выражение:

Dim w As New Word.Application

выдает ошибку:

Compile error: User-defined type not defined

Может быть, какой-то объектной библиотеки не хватает?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

6

Re: открытие ворд из ексель и автозаполнение ворд

Оказалось, что нужно добавить библиотеку Microsoft Word 14.0 Object Library.
Теперь все работает.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

7

Re: открытие ворд из ексель и автозаполнение ворд

точно ))))