Здравствуйте! Есть документ в Ворде, в него (в определенные места по всему документу) необходимо вставлять данные из Эксель таблицы. Обратил внимание на инструмент "закладки". Т.е. по всему документу я в нужных местах установил закладки и обозначил им имена. Далее макросом из Экселя (где таблица с данными) я по именам закладов обращаюсь к ним вставляю нужный текст. Код примерно такой: [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
Здравствуйте. Обычно закладки создаются не в документе, а в шаблоне, формат .dot или .dotx А текст уже вставляется в документ, созданный на основе шаблона. Тогда проблемы
И ещё: закладки можно создавать по-разному. Можно просто поставить курсор в определенное место документа и добавить закладку, а можно выделить фрагмент текста и добавить закладку. Если не ошибаюсь, во втором случае текст внутри закладки заменяется
Здравствуйте. Обычно закладки создаются не в документе, а в шаблоне, формат .dot или .dotx А текст уже вставляется в документ, созданный на основе шаблона. Тогда проблемы
И ещё: закладки можно создавать по-разному. Можно просто поставить курсор в определенное место документа и добавить закладку, а можно выделить фрагмент текста и добавить закладку. Если не ошибаюсь, во втором случае текст внутри закладки заменяетсяPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Спасибо за совет! Т.е. этот документ сохраняем как шаблон, расставляем в нем закладки. Далее заполняем их (документ) и уже заполненный сохраняем как обычный документ (*.docx)? Такой план действий? Что то можете еще предложить аналогично закладкам для данной задачи (чтоб в документе не вычислять абзацы, слова/символы и т.п. для вставки текста)? Или "закладки" - это оптимальное решение? Спасибо!
Спасибо за совет! Т.е. этот документ сохраняем как шаблон, расставляем в нем закладки. Далее заполняем их (документ) и уже заполненный сохраняем как обычный документ (*.docx)? Такой план действий? Что то можете еще предложить аналогично закладкам для данной задачи (чтоб в документе не вычислять абзацы, слова/символы и т.п. для вставки текста)? Или "закладки" - это оптимальное решение? Спасибо!Serega-Sol
Есть два основных подхода: либо использовать закладки, либо расставить опять-таки в шаблоне в нужных местах некие ключевые слова и их менять с помощью инструмента Найти/Заменить
Да, всё верно.
Есть два основных подхода: либо использовать закладки, либо расставить опять-таки в шаблоне в нужных местах некие ключевые слова и их менять с помощью инструмента Найти/ЗаменитьPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Сейчас попробовал работать с закладками в документе шаблоне (*.dotx), но если честно разницы не нашел. в документ с закладкой добавляю значение из ячейки Экселя:
[/vba] то в текст еще раз добавляется значение из ячейки, что не желательно. Поэтому хотелось очистить закладку перед добавлением текста. Что делаю не так? Такая очистка заметки не помогает (как будто она и так пустая :)) [vba]
Код
obj.Bookmarks.Item("закл_1").Range.Text = ""
[/vba] Спасибо.
Сейчас попробовал работать с закладками в документе шаблоне (*.dotx), но если честно разницы не нашел. в документ с закладкой добавляю значение из ячейки Экселя:
[/vba] то в текст еще раз добавляется значение из ячейки, что не желательно. Поэтому хотелось очистить закладку перед добавлением текста. Что делаю не так? Такая очистка заметки не помогает (как будто она и так пустая :)) [vba]
Затем документ сохранил и открыл заново (уже с заполненной закладкой)
Сам шаблон сохраняется с пустыми закладками или с каким-то условным содержимым, если закладка создана по второму варианту (см. сообщение 4). Затем создаётся документ через [vba]
Код
Set obj = objWrdApp.Documents.Add(Path)
[/vba] где Path - это путь к шаблону. И уже в этом документе закладки заполняются нужным содержимым
Затем документ сохранил и открыл заново (уже с заполненной закладкой)
Сам шаблон сохраняется с пустыми закладками или с каким-то условным содержимым, если закладка создана по второму варианту (см. сообщение 4). Затем создаётся документ через [vba]
Код
Set obj = objWrdApp.Documents.Add(Path)
[/vba] где Path - это путь к шаблону. И уже в этом документе закладки заполняются нужным содержимымPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816