Страницы: 1
RSS
Из Excel изменить номер записи в документе Word
 
Всем здравствуйте. Открываю документ Word "Слияние.docx" из Excel. После этого надо изменить на ленте "Рассылка" "номер записи" к которой надо перейти.(Пробовал ActiveDocument.MailMerge.DataSource.ActiveRecord = NZ - не работает.) Подскажите пожалуйста как это сделать.
Код
Sub Слияние()
Set NZ = Sheets("Лист1").Range("A" & ActiveCell.Row) 'Ячейка Номер
CreateObject("WScript.Shell").Run """C:\Users\Vladimir\Desktop\Слияние.docx""" 'Открывается файл
ActiveDocument.MailMerge.DataSource.ActiveRecord = NZ 'Выдаёт ошибку
End Sub

Excel всемогущий.
 
Потому что лучше делать так:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Пробовал открыть через Set objWrdDoc = objWrdApp.Documents.Open("C:\Users\Vladimir\Desktop\Слияние.docx") - файл открывается, но команда SQL SELECT * FROM ’Лист1S' не выполняется. Попробовал так

Код
Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object
    'создаем новое приложение Word. Можно так же проверять открыто или нет приложение
    'через GetObject(,"Word.Application") - см.процедуру Check_OpenWord
    Set objWrdApp = CreateObject("Word.Application")
    'Можно так же сделать приложение Word видимым. По умолчанию открывается в скрытом режиме
    objWrdApp.Visible = True
    'открываем документ Word - документ "Doc1.doc" должен существовать
'    Set objWrdDoc = objWrdApp.Documents.Open("C:\Users\Vladimir\Desktop\Слияние.docx")

CreateObject("WScript.Shell").Run """C:\Users\Vladimir\Desktop\Слияние.docx"""

    objWrdDoc.ActiveDocument.MailMerge.DataSource.ActiveRecord = 5 'ВЫДАЕТ ОШИБКУ ЕШЁ ДО ОТКРЫТИЯ Слияние.docx

    'очищаем переменные Word - обязательно!
    Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub

objWrdDoc.ActiveDocument.MailMerge.DataSource.ActiveRecord = 5 'ВЫДАЕТ ОШИБКУ ЕШЁ ДО ОТКРЫТИЯ Слияние.docx
Изменено: agregator - 18.03.2016 12:36:31
Excel всемогущий.
 
уберите строку CreateObject("WScript.Shell").Run """C:\Users\Vladimir\Desktop\Слияние.docx"""
и вообще забудьте про нее.
objWrdApp.Documents.Open - открывает документ
Учимся сами и помогаем другим...
 
Цитата
agregator написал: ВЫДАЕТ ОШИБКУ ЕШЁ ДО ОТКРЫТИЯ Слияние.docx
понятно - документ-то не открыт. objWrdDoc - где назначение значения этой переменной? Вы видите? И я не вижу. А в статье все это есть. Вы попытались статью прочитать? Там специально есть пример открытия документа. Вы же взяли из статьи одну строку и ждете, что все заработает.
Цитата
agregator написал: но команда SQL SELECT * FROM ’Лист1S' не выполняется
причем здесь эта команда вообще?  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Суть в том, что "Слияние.docx" слит с "Список.xlsx", т.е.  "Слияние.docx" это бланк и он заполняется данными из "Список.xlsx". При открытии должна выполниться  команда SQL SELECT * FROM ’Лист1$'. После открытия я хочу автоматически поставить"номер записи" на ленте "Рассылка"  равный номеру активной строки в "Список.xlsx". (Думал, что это будет несложно.) Поэтому если слияние Word и Excel не произойдет (команда SQL SELECT * FROM ’’Лист1$' не выполнится), то и нет смысла открывать  "Слияние.docx".
Excel всемогущий.
 
Позволю себе апнуть тему. Возникла так же задача по созданию договоров заполняя Word документ данными из таблицы Excel. Как передать значение активной строки первого столбца таблицы для выбора адресата при слиянии? Насколько я понимаю при открытии документа Word за это отвечает параметр DataSource.ActiveRecord. На форуме уже была выложена тема с решением, но не могу допилить ее под себя.  
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
 
Кросс: https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=31517
Решение предложено KuklP в 6 посте. Помогите разобраться пожалуйста. Не могу заставить передать параметр с номером активной строки.
Путь в тысячу ли начинается со слов: "Все в порядке, но есть пара правок..." Лао Цзы
 
Цитата
Кунст написал:
Помогите разобраться пожалуйста
а с чем конкретно помогать-то? Я не нашел от Вас ни описания проблемы, ни каких Ваших кодов, где хоть что-то работает/не работает. Предлагаете пойти в тему 10-летней давности, скачивать там файлы и гадать что именно оттуда не заработало именно у Вас? :) Ну вот скачал я файл из предлагаемого Вами сообщения 6 - все работает и заполняет из активной строки. У Вас какие там сложности возникли?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх