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

Вход

Регистрация

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

 

= Мир MS Excel/Работа с закладками в документе Ворда - Мир MS Excel

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

Здравствуйте!
Есть документ в Ворде, в него (в определенные места по всему документу) необходимо вставлять данные из Эксель таблицы. Обратил внимание на инструмент "закладки".
Т.е. по всему документу я в нужных местах установил закладки и обозначил им имена. Далее макросом из Экселя (где таблица с данными) я по именам закладов обращаюсь к ним вставляю нужный текст. Код примерно такой:
[vba]
Код
Set objWrdApp = CreateObject("Word.Application")
Set obj = objWrdApp.Documents(Name)
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
Если в документе уже была заполнена закладка, то при повторном запуске кода текст добавляется, а не заменяется.
Мне немного непонятно что это за объект такой "закладки". Я не могу удалить её содержимое, обратившись к ней по имени (не саму закладку, а текст в ней). Хотелось бы перед заполнением закладки вначале удалить текст в ней, затем уже вставлять его.
Или это просто указатель в документе и я не смогу удалить текс, если ранее уже добавлял что то в документ к этой закладке?
Возможно что то неправильно объяснил в терминах, но сам до конца еще не разобрался.
Спасибо за комментарии.
 
Ответить
СообщениеЗдравствуйте!
Есть документ в Ворде, в него (в определенные места по всему документу) необходимо вставлять данные из Эксель таблицы. Обратил внимание на инструмент "закладки".
Т.е. по всему документу я в нужных местах установил закладки и обозначил им имена. Далее макросом из Экселя (где таблица с данными) я по именам закладов обращаюсь к ним вставляю нужный текст. Код примерно такой:
[vba]
Код
Set objWrdApp = CreateObject("Word.Application")
Set obj = objWrdApp.Documents(Name)
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
Если в документе уже была заполнена закладка, то при повторном запуске кода текст добавляется, а не заменяется.
Мне немного непонятно что это за объект такой "закладки". Я не могу удалить её содержимое, обратившись к ней по имени (не саму закладку, а текст в ней). Хотелось бы перед заполнением закладки вначале удалить текст в ней, затем уже вставлять его.
Или это просто указатель в документе и я не смогу удалить текс, если ранее уже добавлял что то в документ к этой закладке?
Возможно что то неправильно объяснил в терминах, но сам до конца еще не разобрался.
Спасибо за комментарии.

Автор - Serega-Sol
Дата добавления - 28.04.2021 в 18:56
Pelena Дата: Среда, 28.04.2021, 19:10 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Обычно закладки создаются не в документе, а в шаблоне, формат .dot или .dotx
А текст уже вставляется в документ, созданный на основе шаблона.
Тогда проблемы
текст добавляется, а не заменяется
не будет.

И ещё: закладки можно создавать по-разному. Можно просто поставить курсор в определенное место документа и добавить закладку, а можно выделить фрагмент текста и добавить закладку. Если не ошибаюсь, во втором случае текст внутри закладки заменяется


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Обычно закладки создаются не в документе, а в шаблоне, формат .dot или .dotx
А текст уже вставляется в документ, созданный на основе шаблона.
Тогда проблемы
текст добавляется, а не заменяется
не будет.

И ещё: закладки можно создавать по-разному. Можно просто поставить курсор в определенное место документа и добавить закладку, а можно выделить фрагмент текста и добавить закладку. Если не ошибаюсь, во втором случае текст внутри закладки заменяется

Автор - Pelena
Дата добавления - 28.04.2021 в 19:10
Serega-Sol Дата: Среда, 28.04.2021, 19:14 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Спасибо за совет!
Т.е. этот документ сохраняем как шаблон, расставляем в нем закладки. Далее заполняем их (документ) и уже заполненный сохраняем как обычный документ (*.docx)?
Такой план действий?
Что то можете еще предложить аналогично закладкам для данной задачи (чтоб в документе не вычислять абзацы, слова/символы и т.п. для вставки текста)? Или "закладки" - это оптимальное решение?
Спасибо!
 
Ответить
СообщениеСпасибо за совет!
Т.е. этот документ сохраняем как шаблон, расставляем в нем закладки. Далее заполняем их (документ) и уже заполненный сохраняем как обычный документ (*.docx)?
Такой план действий?
Что то можете еще предложить аналогично закладкам для данной задачи (чтоб в документе не вычислять абзацы, слова/символы и т.п. для вставки текста)? Или "закладки" - это оптимальное решение?
Спасибо!

Автор - Serega-Sol
Дата добавления - 28.04.2021 в 19:14
Pelena Дата: Среда, 28.04.2021, 19:30 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Да, всё верно.

Есть два основных подхода: либо использовать закладки, либо расставить опять-таки в шаблоне в нужных местах некие ключевые слова и их менять с помощью инструмента Найти/Заменить


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеДа, всё верно.

Есть два основных подхода: либо использовать закладки, либо расставить опять-таки в шаблоне в нужных местах некие ключевые слова и их менять с помощью инструмента Найти/Заменить

Автор - Pelena
Дата добавления - 28.04.2021 в 19:30
Serega-Sol Дата: Среда, 28.04.2021, 19:45 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Сейчас попробовал работать с закладками в документе шаблоне (*.dotx), но если честно разницы не нашел.
в документ с закладкой добавляю значение из ячейки Экселя:

[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
Затем документ сохранил и открыл заново (уже с заполненной закладкой).
Далее пытаюсь получить текст из закладки так:
[vba]
Код
st = obj.Bookmarks.Item("закл_1").Range
st = obj.Bookmarks.Item("закл_1").Range.Text
[/vba]
В обоих случаях st пустая. Если выполнить такую команду:
[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
то в текст еще раз добавляется значение из ячейки, что не желательно. Поэтому хотелось очистить закладку перед добавлением текста.
Что делаю не так? Такая очистка заметки не помогает (как будто она и так пустая :))
[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = ""
[/vba]
Спасибо.
 
Ответить
СообщениеСейчас попробовал работать с закладками в документе шаблоне (*.dotx), но если честно разницы не нашел.
в документ с закладкой добавляю значение из ячейки Экселя:

[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
Затем документ сохранил и открыл заново (уже с заполненной закладкой).
Далее пытаюсь получить текст из закладки так:
[vba]
Код
st = obj.Bookmarks.Item("закл_1").Range
st = obj.Bookmarks.Item("закл_1").Range.Text
[/vba]
В обоих случаях st пустая. Если выполнить такую команду:
[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = .Cells(5, 5)
[/vba]
то в текст еще раз добавляется значение из ячейки, что не желательно. Поэтому хотелось очистить закладку перед добавлением текста.
Что делаю не так? Такая очистка заметки не помогает (как будто она и так пустая :))
[vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = ""
[/vba]
Спасибо.

Автор - Serega-Sol
Дата добавления - 28.04.2021 в 19:45
RAN Дата: Среда, 28.04.2021, 21:49 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Читайте внимательно №2. Там все написано.
А ежели очень треба удалить закладку, то это делается так
[vba]
Код
obj.Bookmarks.Item("закл_1").Delete
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 28.04.2021, 21:53
 
Ответить
СообщениеЧитайте внимательно №2. Там все написано.
А ежели очень треба удалить закладку, то это делается так
[vba]
Код
obj.Bookmarks.Item("закл_1").Delete
[/vba]

Автор - RAN
Дата добавления - 28.04.2021 в 21:49
Serega-Sol Дата: Четверг, 29.04.2021, 06:25 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

да, понятно.
Спасибо.
 
Ответить
Сообщениеда, понятно.
Спасибо.

Автор - Serega-Sol
Дата добавления - 29.04.2021 в 06:25
Pelena Дата: Четверг, 29.04.2021, 08:26 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Затем документ сохранил и открыл заново (уже с заполненной закладкой)

Сам шаблон сохраняется с пустыми закладками или с каким-то условным содержимым, если закладка создана по второму варианту (см. сообщение 4).
Затем создаётся документ через
[vba]
Код
Set obj = objWrdApp.Documents.Add(Path)
[/vba] где Path - это путь к шаблону.
И уже в этом документе закладки заполняются нужным содержимым


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Затем документ сохранил и открыл заново (уже с заполненной закладкой)

Сам шаблон сохраняется с пустыми закладками или с каким-то условным содержимым, если закладка создана по второму варианту (см. сообщение 4).
Затем создаётся документ через
[vba]
Код
Set obj = objWrdApp.Documents.Add(Path)
[/vba] где Path - это путь к шаблону.
И уже в этом документе закладки заполняются нужным содержимым

Автор - Pelena
Дата добавления - 29.04.2021 в 08:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа с закладками в документе Ворда (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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