Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос заполнения Word из Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос заполнения Word из Excel (Макросы/Sub)
Макрос заполнения Word из Excel
Artem2292 Дата: Вторник, 17.11.2020, 19:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

2010, 2019, 365
Всем привет!
Нужна Ваша помощь. На просторах интернета нашел макрос по замене закладок в Word данными Excel и подогнал под свои нужны. В целом все работает прекрасно, но столкнулся с одной проблемой, а именно - независимо от того, есть ли данные в ячейках Excel или нет, макрос все тянет в Word, т.е. если в ячейке пусто, то закладку в word заменяет на пустоту. Вопрос такой, можно ли как-то доработать макрос так, чтобы:
- если например, значения в excel есть только для закладок 1,2 и3 , то закладки 4, 5 и 6 не заполнялись бы вовсе
Или же
- если например, значения в excel есть только для закладок 1,2 и3, то весь текс, который идёт после закладки 3 в word был бы удален?



сделал что-то типа такого и вставил в макрос перед сохранением файла:
[vba]
Код
Dim bm

For Each bm In objDocument.bookmarks
bm.Text = ""
bm.Range.Delete
Next
[/vba]
и ничего не выходит..


Сообщение отредактировал Artem2292 - Вторник, 17.11.2020, 23:40
 
Ответить
СообщениеВсем привет!
Нужна Ваша помощь. На просторах интернета нашел макрос по замене закладок в Word данными Excel и подогнал под свои нужны. В целом все работает прекрасно, но столкнулся с одной проблемой, а именно - независимо от того, есть ли данные в ячейках Excel или нет, макрос все тянет в Word, т.е. если в ячейке пусто, то закладку в word заменяет на пустоту. Вопрос такой, можно ли как-то доработать макрос так, чтобы:
- если например, значения в excel есть только для закладок 1,2 и3 , то закладки 4, 5 и 6 не заполнялись бы вовсе
Или же
- если например, значения в excel есть только для закладок 1,2 и3, то весь текс, который идёт после закладки 3 в word был бы удален?



сделал что-то типа такого и вставил в макрос перед сохранением файла:
[vba]
Код
Dim bm

For Each bm In objDocument.bookmarks
bm.Text = ""
bm.Range.Delete
Next
[/vba]
и ничего не выходит..

Автор - Artem2292
Дата добавления - 17.11.2020 в 19:12
RAN Дата: Вторник, 17.11.2020, 23:39 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
If Len(Range("C5")) Then objDocument.Bookmarks("Предложение4").Range.Text = Range("C5").Value Else objDocument.Bookmarks("Предложение4").Range.Delete
[/vba]
и т.д., и т.п.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
If Len(Range("C5")) Then objDocument.Bookmarks("Предложение4").Range.Text = Range("C5").Value Else objDocument.Bookmarks("Предложение4").Range.Delete
[/vba]
и т.д., и т.п.

Автор - RAN
Дата добавления - 17.11.2020 в 23:39
Artem2292 Дата: Среда, 18.11.2020, 10:54 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

2010, 2019, 365
и т.д., и т.п.

что-то не выходит. все описал, но при выполнении макроса выходит ошибка "run time error 5941 запрашиваемый номер семейства не существует"
 
Ответить
Сообщение
и т.д., и т.п.

что-то не выходит. все описал, но при выполнении макроса выходит ошибка "run time error 5941 запрашиваемый номер семейства не существует"

Автор - Artem2292
Дата добавления - 18.11.2020 в 10:54
Artem2292 Дата: Среда, 18.11.2020, 14:25 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 0% ±

2010, 2019, 365
Вопрос снимается. Проблему решил через добавление доп.шаблонов. Может не совсем нормально, но все же :)
1. Добавил ячейку, в которой считаются заполненные ячейки по критерию "Предложение";
2. Исходя из значения этой ячейки прописал выбор шаблонов:
после
[vba]
Код
objWord.Visible = True
[/vba]
добавил ту самую ячейку и необходимый шаблон:
[vba]
Код
If Range("A5").Value = 1 Then
    Set objDocument = objWord.Documents.Open(Filename:="C:\Users\путь к файлу\1.docx")
    End If
    If Range("A5").Value = 2 Then
    Set objDocument = objWord.Documents.Open(Filename:="C:\Users\путь к файлу\2.docx")
    End If
[/vba]
и тд
 
Ответить
СообщениеВопрос снимается. Проблему решил через добавление доп.шаблонов. Может не совсем нормально, но все же :)
1. Добавил ячейку, в которой считаются заполненные ячейки по критерию "Предложение";
2. Исходя из значения этой ячейки прописал выбор шаблонов:
после
[vba]
Код
objWord.Visible = True
[/vba]
добавил ту самую ячейку и необходимый шаблон:
[vba]
Код
If Range("A5").Value = 1 Then
    Set objDocument = objWord.Documents.Open(Filename:="C:\Users\путь к файлу\1.docx")
    End If
    If Range("A5").Value = 2 Then
    Set objDocument = objWord.Documents.Open(Filename:="C:\Users\путь к файлу\2.docx")
    End If
[/vba]
и тд

Автор - Artem2292
Дата добавления - 18.11.2020 в 14:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос заполнения Word из Excel (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!