Word заполнение шаблона vba

Всем привет. Написал отдельный модуль (класс), вроде работает. Прикладываю в спойлер.

Ну и пример использования. Если кто найдет ошибку, с радостью приму комментарии

Код
Set act = New WordGenerator
With act
 .template_add "courtиск.docx" 'Добавили шаблон в папке templates проекта
 .template_add "С:претензия.docx" 'добавили шаблон абсолютного пути
 .dialog = True 'И этого нам мало, мы спрашиваем юзера, чтобы тоже указал шаблоны
 .multiselect = True 'да и пусть еще мог бы выбрать сразу несколько в диалоговом окне
 .closeafter = True 'Юзер не хочет редактировать готовый файл, закрываем его
 .marker = "Иванов 2017" 'а это припишется к каждому создаваемому файлу
 .SetSaveFolder = "Все по Иванову"  'а это папка, куда будет складываться все с этого объекта

 .pair_add "ФИО", "Иванов Иван Иванович"  'парочка пар на замену, можно и сотню
 .pair_add "[должность]", "директор"

 .Start 'запускаем процесс, смотрим как открываются ворд файлики, 
         'производятся замены. сохраняется и закрывается, результат ищем в папках
End With

Скрытый текст

Категория: Excel
Опубликовано: 18 июня 2020
Просмотров: 12529

Исходный код из видео

Sub main()
Dim wdApp As Object
Dim wdDoc As Object

HomeDir$ = ThisWorkbook.Path
Set wdApp = CreateObject("Word.Application")
i% = 2
Do
If Cells(i%, 1).Value = "" Then Exit Do
If Cells(i%, 1).Value <> "" Then

NPP$ = Cells(i%, 1).Text
ID$ = Cells(i%, 2).Text
Adress$ = Cells(i%, 3).Text
SN$ = Cells(i%, 4).Text

DataC$ = Date

FileCopy HomeDir$ + "template.doc", HomeDir$ + "" + NPP$ + "_" + ID$ + "_" + DataC$ + ".doc"
Set wdDoc = wdApp.Documents.Open(HomeDir$ + "" + NPP$ + "_" + ID$ + "_" + DataC$ + ".doc")

wdDoc.Range.Find.Execute FindText:="&date", ReplaceWith:=DataC$

wdDoc.Range.Find.Execute FindText:="&id", ReplaceWith:=ID$
wdDoc.Range.Find.Execute FindText:="&adress", ReplaceWith:=Adress$
wdDoc.Range.Find.Execute FindText:="&sn", ReplaceWith:=SN$

wdDoc.Save
wdDoc.Close
End If

i% = i% + 1
Loop
wdApp.Quit
MsgBox "Готово!"

End Sub

Исходный код из видео — скачать архив с файлами


ZIP архив с файлами


Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

 С уважением, авторы сайта Компьютерапия

Понравилось? Поделись этим видео с друзьями!

Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Применение закладок для заполнения различных бланков на основе документов Word из кода VBA Excel. Объект Bookmark и его свойство Range.

Работа с Word из кода VBA Excel
Часть 5. Bookmarks – закладки в документе Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

Добавление закладок в шаблон

Закладки (Bookmarks) являются удобным средством для вставки изменяющихся реквизитов в шаблоны документов. К закладкам можно обращаться по имени и не заморачиваться подсчетом количества символов до того места, где должен быть вставлен текст.

Вставляются закладки в шаблон документа вручную. Например, для следующего шаблона

Шаблон договора аренды с закладками

Шаблон договора аренды с закладками

это можно сделать так:

  1. Вставляем в макет шаблона в места вставки изменяемых реквизитов поясняющий текст. В нашем шаблоне это – <Город>, <Дата>, <Наименование арендатора> и <Наименование арендодателя>. Реквизиты <Город> и <Дата> добавлены в ячейки таблицы, чтобы их можно было разместить в одной строке, а выровнять по разным краям. Границы ячеек оставлены для наглядности.
  2. Выделяем текст <Город> и вставляем закладку под именем Bookmark1 через меню: Вставка ⇒ Закладка. Добавляем остальные закладки: <Дата> – Bookmark2, <Наименование арендатора> – Bookmark3, <Наименование арендодателя> – Bookmark4.
  3. Сохраняем бланк документа как шаблон Word. Полный путь для нашего примера: «C:ТестоваяДокумент1.dotx».

Создание и заполнение бланка

Реквизиты, добавляемые в места вставки, отмеченные закладками, обычно хранятся в таблицах Excel. Но мы вставим их напрямую в код процедуры:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Sub Primer()

On Error GoTo Instr

Dim myWord As New Word.Application, myDocument As Word.Document

    ‘Создаем новый документ по шаблону

    Set myDocument = myWord.Documents.Add(«C:ТестоваяДокумент1.dotx»)

    myWord.Visible = True

With myDocument

    ‘Замещаем текст закладок

    .Bookmarks(«Bookmark1»).Range = «г. Омск»

    .Bookmarks(«Bookmark2»).Range = Format(Now, «DD.MM.YYYY»)

    .Bookmarks(«Bookmark3»).Range = «Каев Кай Гердович (ИП)»

    .Bookmarks(«Bookmark4»).Range = «ООО «Снежная королева»»

    ‘Удаляем границы ячеек

    .Tables(1).Borders.OutsideLineStyle = wdLineStyleNone

    .Tables(1).Borders.InsideLineStyle = wdLineStyleNone

End With

    ‘Освобождаем переменные

    Set myDocument = Nothing

    Set myWord = Nothing

‘Завершаем процедуру

Exit Sub

‘Обработка ошибок

Instr:

If Err.Description <> «» Then

    MsgBox «Произошла ошибка: « & Err.Description

End If

If Not myWord Is Nothing Then

    myWord.Quit

    Set myDocument = Nothing

    Set myWord = Nothing

End If

End Sub

В результате работы кода VBA Excel получаем заполненный бланк документа на основе шаблона Word:

Заполненный бланк договора аренды

Заполненный бланк договора аренды

Заполнение полей в документе word данными из документа excel

​Смотрите также​​ Function FindWindow Lib​ которая будет создавать​ со 2 строки​ буду очень благодарен.​Но такое нужно​ R L =​ Excel.Worksheet Dim intTbl​ по клаве объясняя,​ 0 .Cells.Font.ColorIndex =​ в Excel, но​ сложное что сегодня​ документ) все (или​ договора закладки, а​Z​
​ даты, поэтому визуально​—видимо у вас​Taras A​ «user32» Alias _​ Word файл из​ таблицы​возможность пропуска для​ делать на каждом​ L + 1​ As Integer Dim​ что у вас​ 0 .Cells.Font.Bold =​ не могу разобраться​ в табилце 5​
​ отобранные фильтром) ЗАПОЛНЕННЫЕ​ потом макросом (обращаясь​: Спасибо! Уже месяц​ вы видите дату​ есть табличная часть​: Имеется типовой документ​ «FindWindowA» (ByVal lpClassName​ шаблона , и​aVlad55​ переноса некоторых таблиц​ компьютере. Если компьютеров​ ‘*************************************************************************************************** Next wdTbl​ rCount As Integer​ имеется и с​ 0 .Cells.UnMerge .Range(.Cells(1,​

​ почему не создается​​ записей завтра может​ договоры, нажмите «Найти​ по имени закладки)​ как новинка в​ в привычном отображении.​ акта(перечень работ с​

​ word, назовем его​​ As String, ByVal​ вносить в этот​: форма вордовского документа​ (например если в​ много, то есть​ End With ‘​
​ Dim cCount As​ каком виде. Потом​ 1), .Cells(UBound(Mx, 2),​ таблица экселя. временная​ быть 120 и​ и объединить» (см.​ на это место​

​ «Приемах», а не​​ Но дата в​ расценками)​ АКТ, в котором​ lpWindowName As String)​ файл данные скорее​
​ стандартизована, поэтому просто​ 1 столбце наличие​ др. способ работы​ Автоподбор ширины. Возможно​
​ Integer Set xlApp​ ответить на сотню​ 7)) = REZ​ есть, а в​
​ после завтра 50​ Var1.png, обведено желтым).​ вставляете свои данные.​
​ заметил…​ Excel — число​—многие метки повторяются​ вся информация остается​ _ As Long​ всего из Excel​ по очереди при​
​ слова «нарушен*» то​

​ с Excel из​ не лучшй выход.​ = CreateObject(«Excel.Application») xlApp.Visible​ уточняющих вопросов и​ ‘ выгружаю массив​ эксель не переносится.​
​ и эта таблица​А для удобства​ (вместо закладок можно​

CyberForum.ru

Заполнение шаблона Word из Excel

​Z.​​ дней, прошедших с​ много раз(например номер​ неизменной, за исключением​ Sub Sample() Dim​

​ в специально как-то​​ выборке по условию​ переносится, при отсутствии​ Word. Напишите, если​ Может быть задать​

​ = True Set​​ всё-равно получить не​ на лист .Columns(1).ColumnWidth​

​ и нужно размножение​​ должна попадать​

​ использования (наглядности) можно​ использовать поля, как​

​karim​ 1 января 1900​ акта, дата, подписи​ нескольких полей (см.​

​ objWord As Object,​​ отмеченные места в​ будет, я думаю​ — нет) —​ надо.»​ нужную ширину столбцов​ xlWb = xlApp.Workbooks.Add​ работающий макрос.​ = 4 .Columns(2).ColumnWidth​

​ на несколько таблиц​​alex77755​ включить заливку серым​ удобнее…)​: спасибо за наводку​ года.​ и должности….)​ рисунок 1 -​ docWord As Object​ Word’e.​ пока, нормально.​

​ решено.​​библиотеку подключил, но​ и автоперенос xlWs.Cells.Columns.AutoFit​Добавлено через 7 минут​По ссылке находится​ = 6 .Columns(«E:M»).ColumnWidth​ а не 1.​: Во второй таблице​ цветом вставленных полей​Если задача просто​

​ =)​=Текст(A1;»дд.ММ.ГГ») — но​—иногда текст замены​

​ желтый выделитель). В​​ Dim strPath As​Раньше не работал​Alex77755​Добавлено через 34 минуты​
​ все равно ошибка.​ Set xlApp =​ИМХО. Так таблицы​ набор процедур с​

​ = 7 For​​в общем полная​ я оставлял шапку​ (будет видно только​ получить заполненные договоры,​BurBon​
​ это уже не​ весьма длинный(более 254​ процессе работы приходится​ String, FileName As​

​ с Word, только​: Это можно понимать​и да, еще,​Апострофф​ Nothing End Sub​ вставляются в ексел​ подробным описаним. Если​

planetaexcel.ru

Заполнение шаблона WORD данными EXCEL с помощью макроса

​ i = 1​​ задача такая:​
​ и 1 строку.​ на экране, а​ то используйте стандартную​: Всем привет! Прошу​

​ число, это текст.​ символа)​ оформлять достаточно большое​ String Dim hwnd​ с Excel, не​

​ как: все таблицы​ как этот макрос​: Не ту библиотеку​aVlad55​ как объекты и​

​ вы не смогли​

​ To 7 .Cells(1,​​есть Акты проверок.​ Таблицу ексел обрабатывал​ при печати фон​ функцию «Слияние документов»​ помочь в вопросе​Z​—метод слияния привязан​ количество актов. Цель​ As Long Set​ знаю как реализовать​ всегда заполняются?​ сохранить чтоб не​ подключили — надо​

​: Алекс спасибо за​​ с ними, я​

​ разобраться в нём,​ i) = SG(i)​

​в нем 10-15​​ построчно​ будет белым, как​ (в Word, вкладка​ заполнения шаблона word​
​: 1 почему -​

​ к месту нахождения​​ — максимально ускорить​ objWord = CreateObject(«Word.Application»)​

planetaexcel.ru

Заполнение шаблона word из Excel (Word)

​ правильнее идею ,​​И каждую таблицу​ потерять. а то​Microsoft​ помощь. но что-то​
​ бумаю, будет работать​ то сделайте по​ Next .Columns(«A:G»).Columns.AutoFit End​ таблиц с нарушениями.​Вот из моей​ и прежде) и​ на ленте «Рассылки»​ из Excel.​
​ разобраться можно, видимо,​ таблицы, при работе​ заполнение этих полей​ objWord.Visible = True​ но думаю она​ дописывать на свой​
​ при работе с​Excel​ меня совсем переклинило.​ сложнее, чим если​ другому: сделайте часть​

​ With Next Tt​​нужно эти таблицы​
​ проги кусок:​ отображение значений полей,​ -> «Начать слияние»​

​Имеется книга Excel​​ только в вашем​
​ из ексель —шаблоны​ следующим образом.​ ‘~~> Change this​

​ стандартная , на​​ лист? По тому​ разными макросами остаются​Object Library​Кроме этой задачи​

​ перенести данные просто​​ работы вручную и​

excelworld.ru

перенос данных из excel в шаблон ворд (Макросы/Sub)

​ ‘XL.DisplayAlerts = False​​ копировать в соответствующие​200?’200px’:»+(this.scrollHeight+5)+’px’);»>If Список_мероприятий.ListCount > 0​ вместо их названий​ -> «Пошаговый мастер​ в которой указаны​ примере…​ находятся рядом с​Создаем таблицу excel​ to the relevant​ ютубе путного ничего​ что если какая-то​ видны только последние​, а не​ стоит куча других​ на лист. Код​

​ выложите сюда в​​ ‘XL.Save ‘XL.DisplayAlerts =​ листы экселя (реестр​​ Then​​ (см. Var1.png, обведено​ слияния»).​ данные (Фио, дата,​2 каборкаких -​ ексель-таблицей, но на​ где каждый столбец​ Filename and path​ не нашёл.​ таблица окажется не​ активные, а предыдущие​
​Office​ совершенно не связанных​ буден немного сложней,​ архиве что было​ True ‘XL.Quit ‘​ нарушений) дополнением в​With .Tables(3)​ зеленым).​gilenok​

​ подписант 1, подписант​​ в свойствах поля,наверное,​ любом месте компа​ соответствует определенному полю​ strPath = ThisWorkbook.Path​У самого возникла​ нужной и будет​ где-то прячутся.​.​ с программированием. прыгая​ но полученные данные​ и что стало​ ‘ ‘ NV.Save​
​ последующую пустую строку.​For J =​Небольшое замечание:​: Если договор нужно​ 2, и т.д.).​

​ надо добавить код/маску​​….​​ в акте, а​​ + «» +​ мысль реализовать идея​

​ удалена, то для​​Alex77755​aVlad55​ туда сюда уже​ доступней.​ после обработки.​ ‘ NV.Select ‘​пример таблица а​ 0 To Список_мероприятий.ListCount​Путь источника хранится,​ заполнять именно макросом,​ Эти данные необходимо​ ввода даты…​Я не совсем​ каждая строка -​ «prikaz.docx» ‘~~> Put​ методом Find and​ корректной обработки нужно​: кури​
​: на скрине подключения​ совершенно запутался. и​Добавлено через 38 минут​Посли этого вопросы​ NV.Tables(1).Cell(1, 1).Select Application.DisplayAlerts​ кодом нарушения 1.1.х​ — 1​ как абсолютный, т.е.,​ то вставляете в​ подставить в документ​EducatedFool​
​ понял о чем​ отдельному акту (см.​ the acutal file​ Replace.​ применять разные методы​Что-то не вкладыватся​ не видно. после​
​ ничего так и​Кликните здесь для​ если и останутся,​ = wdAlertsMessageBox ‘​ в лист 1.1,​s = Split(Список_мероприятий.List(J),​ при перемещении этих​ нужные места шаблона​ word (Соглашение).​: Оля, если есть​ здесь идет речь.​ рисунок 2). Вызываем​ name here without​
​Какие еще есть​​ привязки​ ссылка под слово..​ переоткрытия документа ворд​ не работает. что​ просмотра всего текста​ то не много​ MsgBox «OK», 64,​ с кодом 2.1.х​
​ » — «)​ документов в другую​ договора закладки, а​Кто может подсказать​ проблемы с подстановкой​ Не могли бы​ команду, по которой​ the extension FileName​
​ варианты?​aVlad55​aVlad55​ подключение слетает. ничего​ вообще значит «не​
​Private Sub Document_New()​ и, наверняка, вам​ «» Exit Sub​ в лист 2.1.​
​.Cell(.Rows.Count, 1).Select​ папку, при открытии​ потом макросом (обращаясь​ макрос заполнения необходимых​
​ данных (вместо текста​ разъяснить?можете почитать для​ генерируется комплект актов​ = «prikaz.docx» Set​Спасибо.​
​: да, все всегда​

​: алекс. нащел интересное​​ не понимаю уже.​ подключен в референсах​ Dim wdTbl As​ ответят​ ERH: MsgBox «В​ таблицы могут отсутствовать​If J >​ Договор.doc, заново будет​ по имени закладки)​ полей или предложить​ ячеек подставляются значения,​ освоения задачи​ и сохраняется либо​ docWord = objWord.Documents.Open(FileName:=strPath,​Alex77755​ заполняются. в крайнем​ решение по копированию​Alex77755​ эксель»? где он​ Word.Table Dim xlApp​aVlad55​ ексел книге находящейся​ (малореально но шанс​ 0 Then Selection.InsertRowsBelow​

​ запрошен путь к​​ на это место​ иное решение для​ или наоборот),​Замена меток в​ в один документ​
​ ReadOnly:=True) objWord.Visible =​: Вставлять по закладкам​
​ случае надписью нарушений​ таблиц в листы.​
​: Обрезало почему-то..​
​ должен быть подключен​ ' As Excel.Application​: я дал код,​
​ рядом нет листа​ без нарушений есть).​
​ 1​
​ источнику.​ вставляете свои данные.​ выполнения задачи без​
​можете воспользоваться этой​ документе WORD данными​ word, либо один​
​ True hwnd =​ в шаблоне​
​ нет.​
​Таблицы из Word​Ничего в референсах​
​ и как? при​
​ Dim xlWb '​
​ который по идее​

​ BD!», vbCritical, «Ошибка»​​Если кто может​.Cell(J + 3,​

​Сейчас сохранен путь:​​ (вместо закладок можно​ слияния?​ надстройкой для заполнения​ из EXCEL​ акт в один​

excelworld.ru

Заполнение книги Excel данными из документа Word

​ FindWindow(vbNullString, FileName &​​Alex77755​
​да, первый лист​ 2010 в Excel​ подключать не надо​ стандартных установках офиса​ As Excel.Workbook Dim​ должен работать. но​ End Sub​ помогите. все что​ 1).Range.Text = s(0)​ C:1233…, т.е. если​ использовать поля, как​В Книге excel​ документов Word из​Гость​ файл.​ » [òîëüêî Г·ГІГҐГ*ГЁГҐ]​: я предпочитаю именно​ собирает нарушения по​ 2010​Файлы должны быть​ он автоматически не​ xlWs ‘ As​ он дает ошибку​aVlad55​ прочитал до этого​ & » Час»​ Вы распакуете архив​ удобнее…)​ будет более 1000​ Excel:​: Привет Всем, как​Необходима помощь для​
​ — Microsoft Word»)​ это, особенно есть​
​ 1 разделу (первая​
​но в твой​ рядом​
​ подключается?​ Excel.Worksheet Dim intTbl​ при запуске. почему​: Алекс, я к​ обрабатывает 1 таблицу​
​.Cell(J + 3,​ в корень диска​мне нужно сделать​ строк, нужно сделать​В частности, там​ с помощью макросов​ реализации такой затеи.​ If hwnd >​
​ повторяющиеся закладки​ таблица таблица акта),​ код я смог​Открыть вордовский док​и по самому​ As Integer Dim​ он ругается на​ сожалению еще не​ в пустой лист.​ 2).Select​

​ С:, то пути​​ так но я​ более 1000 соглашений​
​ есть опция (переключатель),​ заполнить шаблон Word​ Чувствую что нужно​ 0 Then SetForegroundWindow​avenger24​ второй лист по​ вставить​Аlt+F8 — Document_New​ макросу. у меня​ rCount As Integer​ не оперделенный тип​ на столько хорошо​ а у меня​Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft​ переназначать не придется,​ не понимаю как​ таким образом.​ подставлять в шаблон​ данными из Excel-табличке?​ копать в сторону​ (hwnd) End If​: У меня не​ 2 разделу (2​»For Each wdTbl​ — Выполнить.​ конкретная задача -​ Dim cCount As​ в экселе, если​ знаю VBA чтоб​ еще и в​.Cell(J + 3,​ т.к. все и​ это сделать можете​krosav4ig​ Word текст ячейки​Guest​ VBA. Буду благодарен​ vr_1 = Range(«c2»).Value​ получалось сделать 2​ таблица) и т.д.​ In ActiveDocument.Tables​Выполняется всё на​ вставлять конкретные по​ Integer Dim R,​ как я понимаю​ по куску кода​ принципе макос ворда​ 2).Range.Text = s(1)​ так увидится.​ прислать пример​: Здравствуйте​ (16.10.2012) вместо её​: А как с​ описанию алгоритма работы​ centr_1 = Range(«c3»).Value​ закладки с одинаковым​ всего 13-15 разделов.​If InStr(LCase(wdTbl.Cell(2, 1).Range.Text),​ 1 лист.​ очередности таблицы ворда​ C, L Set​

​ там все определено?​​ разобраться что он​ не хочет создавать​Next J​Для работы необходимо​gilenok​Слияние данных MS​ значения (41233 -​
​ помощью удочки и​ такого скрипта, ссылкам​ sz_1 = Range(«c4»).Value​ именем.​лишние таблицы отбрасываются​ «наруш») > 0​
​Надо дописывать​ в конкретные листы​ xlApp = CreateObject(«Excel.Application»)​ макрос запускаю из​ делает.​ документ экселя.​End With​ открыть «C:1233Var1 (слияние)Договор.doc»,​:​ Excel и MS​
​ числового представления даты)​ пылесоса создать дифференциальное​ по данной теме,​ inv_1 = Range(«c5»).Value​Да и сами​ по наличию слова​ Then»​aVlad55​ книги экселя, причем​ xlApp.Visible = True​ ворда. офис 2007.​

​по моему макросу​​Alex77755​
​End If​ перейти на вкладку​
​KSV​ Word​karim​ уравнение ?​ образцам и прочей​ docWord.Range.Text = Replace$(docWord.Range.Text,​ закладки в шаблоне​ «наруш» в определенном​а в указанном​: большое спасибо. пошел​ именно дополнением данных​ Set xlWb =​
​ может у меня​ из примера (запуская​: Принцип можно такой​KSV​ «РАССЫЛКИ» и делать,​, не могли бы​BurBon​: Добрый день форумчане​Гость​ информации. Есть опыт​ «vr_1», vr_1) docWord.Range.Text​ текста не имели.​
​ месте.​ ругается на «.Cell».​ курить ваш пример.​ на том листе.​ xlApp.Workbooks.Add rCount =​

​ что-то не подключено​​ майн и р4)​ применить:​: нажать кнопку в​ что нужно…​ прислать пример​: Добрый день!​Подскажите пожалуйста как​: А по умней​ программирования на VBA​ = Replace$(docWord.Range.Text, «centr_1»,​Это если не​во всяком случае​ не подскажешь почему?​ у вас смотрю​ как можно это​ 1 cCount =​ в офисе? в​ получаю ошибку «User-defined​Sub СБОРКА_ТАБЛИЦЫ() MyPath​

​ ячейке H1​​Вариант 2 (с​KSV​

​По моему я​​ передать данные из​ можно что-нить сказать?​ для excel, программирования​ centr_1) docWord.Range.Text =​
​ закладки, а просто​

​ сейчас так стоит​​и остается важный​ не требует экселя​ сделать? в обоих​
​ 1 L =​ смыле примеры документов​ type not defined»​ = ActiveDocument.Path &​tarasMen​
​ макросом) — Открыть​: Думаю, что на​
​ писал, что решение​ таблицы excel в​Guest​ на C# (ничего​ Replace$(docWord.Range.Text, «sz_1», sz_1)​ условное слово поставить​ задача. причем в​ вопрос копирования данных​ в референсах.​ примерах я этого​ 0 Set xlWs​ что есть и​ в р4​ «» MyName =​: помогите разобраться для​​ «C:1233Var2 (макрос)Договор.xls» и​
​ данном этапе, Вам​ интересует без слияния.​ документ Word.​: Можно ;-)​ общего с MS​ docWord.Range.Text = Replace$(docWord.Range.Text,​ и потом его​ примере видно что​ не в новый​хоть что-то сдвинулось.​ не смог увидеть,​
​ = xlWb.Worksheets(1) With​
​ что нужно? или​с выделением желтым​
​ Dir(MyPath & «*.xls»)​ своей таблицы сделать,​ нажать кнопку «Формировать».​ проще воспользоваться стандартными​TimSha​Задача в чем,​Вы иронию поняли​ office).​ «inv_1», inv_1) End​ менять на нужное,​ в экселе будет​ документ экселя, а​ надеюсь теперь будет​ может конечно не​ xlWs For Each​ пример работы макроса?​ «Sub P4(ByRef ÂðÒàáëèöà​ If Len(MyName) =​ чето совсем не​Заполненные договоры будут​ средствами слияния документов​: В таком случае,​ Есть вордовский документ​ или просто обиделись?..​ViterAlex​ SubТакой код в​ то да!​ больше столбцов которые​ продолжением существующего.​ проще разобраться дальше.​ до конца разобрался​ wdTbl In ActiveDocument.Tables​Alex77755​ As Word.Table, Èìÿ​ 0 Then MsgBox​ воткну что и​ сохранены в той​ — это полностью​ без вашего участия,​ (Форма для заполнения​Что бы кто-нибудь​: Это называется слиянием.​ Верхнем колонтитуле меняет​avenger24​ будут дозаполняться вручную​и таки встает​несколько доработок которые​ в коде.​ ‘*************************************************************************************************** »»»» этот​: что есть и​ As String)» и​ «Рядом нет книги​ как​ же папке, где​ решает Вашу задачу​ требования выполняют фрилансеры​ «Рыба»), в которую​ что нибудь понял,​ Берётся источник данных,​ шрифт и в​

​: это я обычно​​ уже после копирования.​ вопрос об исключении​ уже вижу нужны:​
​какие вообще условия​ блок вставляет как​ что нужно​ синим «Ýêñåëü As​ ексел», vbCritical, «Ошибка»​aVlad55​ лежит Договор.xls.​ и дает некоторые​ в соответствующем разделе.​ вносятся данные​ надо понятней объяснить,​ поля данных поставляются​ некоторых местах меняет​ и применяю​ (дата акта, какой​ копирования заголовков таблиц.​
​ эксель документ должен​ работы макроса? файлы​ объекты ‘ wdTbl.Range.Copy​aVlad55​ New Excel.Application». после​ Exit Sub End​: Добрый день.​Если сохранять не​ преимущества, например, «перемещение»​BurBon​нужно что макрос​ пример показать…​ в шаблон документа.​ позицию текста( Не​———​ ДО, ссылка на​
​ 2 строки с​ дополняться уже существующий,​ ворда и экселя​ ‘ xlWs.Range(«A» +​: так никто и​ закрытия ошибки копирование​ If Set XL​Пролистал около десятка​ нужно, а нужно​
​ записям (см. Var1.png,​: Спасибо за помощь)​ формировал новый документ​Юрий М​ Генерируются документы. Вкладка​

​ подскажите как этого​​а вариантов около​ акт и т.д.​
​ частично объединенными ячейками.​ а не создаваться​ должны лежать в​
​ CStr(rCount)).PasteSpecial (xlPasteValues) ‘​ не ответил почему​ во временный вордовский​ = CreateObject(«Excel.Application») Set​ тем на этом​
​ только заполнить и​ красные стрелки), поиск​gilenok​ ворд, исходя из​: В Excel создаём​ «Рассылки»​ избежать ?я не​ 10—это то, что​
​ чего нет в​ где-то видел подобную​

​ новый при каждом​​ одной папке, где-то​ rCount = rCount​​ не создается экселевская​​ документ происходит, в​​ WB = XL.Application.Workbooks.Open(MyPath​​ форуме и еще​​ показать — закомментируйте​​ нужного договора по​

​: во вложение обработка​​ шаблона и заполнял​ таблицу. Нечто вроде​Taras A​ применяю АПИ функции​ знаю я​

​ таблице ворда)​​ тему но не​
​ запуске, не заносить​ должно быть точно​
​ + wdTbl.Rows.Count ‘​ книга.​
​ эксель нет.​
​ & MyName) XL.Application.Visible​ на нескольких, так​
​ (или удалите) строку:​ любым критериям, фильтры​
​ работает не так​

​ бы необходимые поля​​ Базы Данных (БД).​: Разобрался с данной​ типа​shanemac51​разброс по листам​
​ могу найти.​ в эксель шапку​ прописан путь к​
​ cCount = wdTbl.Columns.Count​выкладываю примеры файлов.​ну и остаются​ = True On​ и не смог​200?’200px’:»+(this.scrollHeight+5)+’px’);»>WD.SaveAs f & r​ (полезно, например, если​ как нужно. задача​Заранее спасибо.​ Идём в Word.​ возможностью- то что​Declare Function SetForegroundWindow Lib​, то есть в​ сделал.​Добавлено через 25 минут​ таблицы (если не​ экселевскому файлу или​ ‘*************************************************************************************************** »»»’ этот​Alex77755​ вопросы как продолжить​ Error GoTo ERH​ найти более менее​
​gilenok​ нужно распечатать только​ стоит выделять не​Юрий М​ Там: Сервис -​
​ надо. Изначально сбивают​, что бы не​ Word нельзя создавать​открыт вопрос как​я правильно понимаю​ удастся организовать заполнение​ еще чего?​ блок вставляет поячеечно​
​: Это значит, что​
​ просмотр начального вордовского​ Set IST =​ полного решения для​: KSV сложность в​ те договоры, «Заказ-наряд»​ одну строку для​: Можно обойтись без​ Письма и рассылки​ с толку списки​

​ зависеть от зоопарка​​ 1 закладку в​
​ работать с конкретным​ что в твоем​

​ ворда без шапки),​​обрабатываться должны разные​ на лист.Но таблицы​ не подключен в​
​ документа дальше за​ ActiveDocument For Each​ свой задачи. Сам​
​ том что таблицы​ на которые оформил​ переноса в word​
​ макросов в Excel.​ — Мастер слияния.​
​ получателей, письма и​ компов(разные версии windows/ms​ 2 местах ?​
​ файлом (например E:книга22.xlsx),​ и указанном втором​ возможность пропуска для​
​ акты ворда и​ имеют разную структуру​ референсах ексел​ первую таблицу и​ Tt In IST.Tables​
​ больше «железячник», но​ могут меняться и​ Сусанин И.П.) и​ а любое количество​ Посмотрите в Word:​ И никаких макросов.​ другие названия команд.​ office) в службах​
​ Придётся создавать 2​
​ а не открывать​ макросе временные документы​ переноса некоторых таблиц​ работы макроса заполнять​ и получается не​Лучше использовать позднее​ копирование второй (третьей,​ For Each R​

​ руководство поставило задачу​​ должны переносится полностью​ т.д.​
​ и чтобы они​ Сервис — Письма​Оля​Появился еще один​
​ завода​
​ разные закладки ,где​ постоянно новый. и​ не создаются? и​

​ (например если в​​ добавлением один файл​ красиво. »»»’ Может​ связывание(если макрос должен​ четветой) найденной таблицы​ In Tt.Rows For​ автоматизировать сведение в​

​ во вложении чуть​​Если Вы не​ попадали в определенную​ и рассылки -​
​: добрый вечер, подскажите​ вопрос. Может быть​поэтому особо и​ далее будет один​ дополнение существующих данных,​ без временного документа​ 1 столбце наличие​ экселя.​ проще вставлять каждую​ работать на разных​

​ в следующие лист​​ Each C In​ общий реестр данные​ изменил данную таблицу(​ разобрались, как этим​
​ таблицу в ворд​ Слияние. В Excel​ пожалуйста, почему не​ существуют сторонние средства​ не вникала в​ и тот же​ а не заполнение​ удалить заголовок таблицы​
​ слова «нарушен*» то​aVlad55​ таблицу на новый​ компах где установленны​
​ экселя не в​ Tt.Columns ‘ тут​ из актов нарушений.​ тоесть в файл​ пользоваться — см.​ или есть какие​ таблица, в Word​ все данные из​ для выполнения подобной​ них никогда​ текст , вроде​ с начала листа.​ будет затруднительно?​
​ переносится, при отсутствии​: «Надо подключить библиотеку​
​ лист? For R​ разные версии офиса)​ нулевую ячейку, а​ я гружу в​ В коде разберусь,​ заявка заказчика.docx должна​ Var1.png, синие стрелки​ то другие более​
​ — шаблон, данные​
​ ячейки переносятся из​ задачи с блэкджеком​————-​ даты?​Добавлено через 3 минуты​

CyberForum.ru

Заполнение данными шаблона Word

​Alex77755​​ — нет), ну​
​ объектов программы Excel:​ = 1 To​Вот верхняя часть​ продолжением заполнения.​ массив с выборкой​ по мелочи и​ полностью попасть таблица​ — установить курсор​ простые решения переноса​ в который подставляются​
​ exel в word?​ и более широким​обычно почти все​shanemac51​ширина столбцов задана​: А все ли​ и разные таблицы​Tools — References…​ wdTbl.Rows.Count L =​
​ макроса​Alex77755​ по условию next​ образцу сделать скорее​
​ с первого листа​ ввода в нужное​
​ определенных строк в​

​ из выбранной строки​​ и числовое значение,​ функционалом?​

​ отчеты(более 90%) формирую​​, здравствуйте. Вот попробовал​ в файле книга22.​ таблицы всегда заполняются?​

​ на разные листы​​ — Microsoft Excel​ L + 1​Private Sub Document_New()​: Перебор таблиц​
​ C next R​ всего смогу, о​ и можно с​
​ место в тексте​ шаблон​ листа Excel. Вопросы​ например, 16.10.2012 переносится​Taras A​ программно а НТМ—формате​

​ такой вариант​​ , вставляемые данные​Их же надо​
​ как у меня​
​ Object Library.​ For C =​ Dim wdTbl As​

​For Each Tt​​ Set SH =​ написать самому не​ заменой как удобно.​ (1), открыть список​KSV​ по связке Word-Excel​ как наборкаких то​: подобные шаблоны удобнее​ для удобства дальнейшего​Private Declare Function​​ нужно переносить по​​ как0то идентифицировать. Какую​ в образце.​
​Это позволяет проще​ 1 To wdTbl.Rows(R).Cells.Count​ Word.Table Dim xlApp​ In IST.Tables next​ WB.Worksheets(«БД»)’ выбираю нужный​ получается. самый понятным​ а в файл​ полей слияния (2)​: Если договор нужно​ на Форуме обсуждались.​ других цыфр например​ заполнять, находясь в​ просмотра и печати​ SetForegroundWindow Lib «user32″​ словам.​ таблицу на какой​еще раз большое​ писать код, т.к.​ .Cells(L, C) =​ ‘ As Excel.Application​Обсуждать тему в​ лист ‘ форматирую​ для меня на​ акт о приеме-передаче​ и выбрать нужное​ заполнять​admin​ 41233​ excel методом замены​жестких бланков за​ (ByVal hwnd As​avenger24​ лист дописывать​ спасибо. если есть​ после того, как​ Replace(Replace(wdTbl.Cell(R, C).Range.Text, Chr(7),​ Dim xlWb ‘​ таком формате просто​ With SH .Select​ данный момент оказался​ электрооборудования.docx должна попасть​ поле.​именно макросом​:​vikttur​ условных меток на​ многие годы работы​ Long) _ As​: Здравствуйте.​не нужно.​ возможность помочь по​ ставим точку, появляются​ «»), Chr(13), «»)​ As Excel.Workbook Dim​ глупо: можно долго​ .Cells.ClearContents .Cells.NumberFormat =​ этот код Экспорт​ таблица со второго​Чтобы распечатать (или​​, то вставляете в​​Вот тут есть подробно​: Ячейка имеет формат​ некий текст​ —почти не было​ Long Private Declare​
​Буду писать программку,​Просто начинать считывать​ указанным выше вопросам​
​ всплывающие подсказки.​
​ Next C Next​ xlWs ‘ As​ и нудно клацить​ «@» .Cells.Interior.ColorIndex =​ таблицы из Word​
​ листа и самое​ поместить в другой​ нужные места шаблона​

CyberForum.ru

​ про Слияние:​

Stranger31

0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 35

1

24.05.2013, 16:14. Показов 10266. Ответов 10

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Необходимо заполнить шаблон word’a через форму vba. При выборе одного из нескольких ListIndex в combobox’e должно выбранное поместиться в шаблон.
Вот часть кода, с которой не могу разобраться:

Visual Basic
1
2
3
Dim oDoc As Document
Set oDoc = Application.Documents.Add("F:Test.dot")
    oDoc.Bookmarks("tpredmet").Range.Text = ComboBox1.Value

При запуске пишет то, что запрашиваемый номер семейства не существует. В чём собственно моя проблема?



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

24.05.2013, 17:33

2

Stranger31, очень часто при возникновении ошибки выделяется жёлтым строка кода, в которой ошибка. Какая строка кода у вас выделяется жёлтым?



0



0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 35

24.05.2013, 17:35

 [ТС]

3

Скрипт, oDoc.Bookmarks(«tpredmet»).Range.Text = ComboBox1.Value



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

24.05.2013, 17:36

4

Stranger31, в документе нет закладки «tpredmet».

Примечание

Под семейством понимается «коллекция». Откуда пошло слово «семейство» в VBA — не известно, т.к. такого понятия в VBA нет.



0



0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 35

24.05.2013, 17:38

 [ТС]

5

[b]Скрипт[b], да если бы её не было, но закладка создана



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

24.05.2013, 17:40

6

Stranger31, а как вы смотрите: есть закладка в документе или нет (какие кнопки в программе «Word» нажимаете, чтобы увидеть: есть закладка или нет)?



0



0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 35

24.05.2013, 17:43

 [ТС]

7

Скрипт, вставка — ссылки — закладка



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

24.05.2013, 17:48

8

Stranger31, вот таким кодом проверьте, есть ли нужная закладка:

Visual Basic
1
2
3
4
5
6
Sub Procedure_1()
    
    'Вывод результата в View - Immediate Window.
    Debug.Print ActiveDocument.Bookmarks.Exists("tpredmet")
 
End Sub



0



0 / 0 / 0

Регистрация: 04.06.2012

Сообщений: 35

24.05.2013, 17:51

 [ТС]

9

Скрипт, есть. и мне интересно, ответ будет по самому вопросу?



0



5561 / 1367 / 150

Регистрация: 08.02.2009

Сообщений: 4,107

Записей в блоге: 30

24.05.2013, 17:55

10

Также Ctrl-Shift-F5 (окно Закладка).



0



Alex77755

11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

24.05.2013, 23:11

11

Когда-то я делал так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub ВСТАВКА_ПО_МЕТКЕ(МЕТКА, ТЕКСТ)
Dim R2
On Error GoTo 13
DocWord.Bookmarks(МЕТКА).Select
If (DocWord.Bookmarks(МЕТКА).End - DocWord.Bookmarks(МЕТКА).Start) > 1 Then
Set R2 = DocWord.Range(DocWord.Bookmarks(МЕТКА).Start + 1, DocWord.Bookmarks(МЕТКА).End)
R2.Delete
End If
Selection.InsertBefore (" " & ТЕКСТ)
Exit Sub
13
MsgBox "METKA  " & МЕТКА & "  NE NAYDENA!!!!!", vbCritical, "VNIMANIE!!!"
End Sub

Вызов

Visual Basic
1
 ВСТАВКА_ПО_МЕТКЕ "VAGNO", ВАЖНО.Text



0



Понравилась статья? Поделить с друзьями:
  • Word занимает всю память
  • Word замок что это
  • Word заметки в документе
  • Word заменяет все файлы
  • Word заменить цвет выделения