Макрос в эксель на заполнение таблицы из файла ворд
Всем доброго времени суток!
Один замечательный программист на этом форуме написал прекрасный макрос для объединения нескольких книг и листов в один файл. Макрос называется "Consolidated_Range_of_Books_and_Sheets".
А вот как сделать то же самое для нескольких файлов Word? Перекинуть данные из этих файлов в один файл Excel, друг под другом.
Прикладываю 2 файла для примера.
Всем доброго времени суток!
Один замечательный программист на этом форуме написал прекрасный макрос для объединения нескольких книг и листов в один файл. Макрос называется "Consolidated_Range_of_Books_and_Sheets".
А вот как сделать то же самое для нескольких файлов Word? Перекинуть данные из этих файлов в один файл Excel, друг под другом.
Прикладываю 2 файла для примера. Мурад
Sub Макрос1()
Dim flag As Boolean
Dim WordApp As Object
On Error Resume Next
Set WordApp = GetObject(, "word.application")
If WordApp Is Nothing Then Set WordApp = CreateObject("word.application"): flag = True
On Error GoTo 0
With WordApp
With .Documents.Open("c:\test.doc")
.tables(1).Range.Copy
ActiveSheet.Paste
.Close False
End With
End With
If flag Then WordApp.Quit
Set WordApp = Nothing
End Sub
Sub Макрос1()
Dim flag As Boolean
Dim WordApp As Object
On Error Resume Next
Set WordApp = GetObject(, "word.application")
If WordApp Is Nothing Then Set WordApp = CreateObject("word.application"): flag = True
On Error GoTo 0
With WordApp
With .Documents.Open("c:\test.doc")
.tables(1).Range.Copy
ActiveSheet.Paste
.Close False
End With
End With
If flag Then WordApp.Quit
Set WordApp = Nothing
End Sub
Sub Макрос1()
Dim flag As Boolean
Dim WordApp As Object
On Error Resume Next
Set WordApp = GetObject(, "word.application")
If WordApp Is Nothing Then Set WordApp = CreateObject("word.application"): flag = True
On Error GoTo 0
With WordApp
With .Documents.Open("c:\test.doc")
.tables(1).Range.Copy
ActiveSheet.Paste
.Close False
End With
End With
If flag Then WordApp.Quit
Set WordApp = Nothing
End Sub
[/vba]
из темы макрос Hugo. Посмотрим, подходит ли для выгрузки данных из нескольких файлов Автор - Мурад
Дата добавления - 08.11.2016 в 11:06
Не подошло. Руки надо ровнять дальше. А пока дальше воспользуемся тем, что уже придумали. Следующий Макрос от Gustav:
[vba]
Sub ImportWordTable()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim TableNo As Integer 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Integer 'column index in Excel
wdFileName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _
"Browse for file containing table to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
With wdDoc
TableNo = wdDoc.tables.Count
If TableNo = 0 Then
MsgBox "This document contains no tables", _
vbExclamation, "Import Word Table"
ElseIf TableNo > 1 Then
TableNo = InputBox("This Word document contains " & TableNo & " tables." & vbCrLf & _
"Enter table number of table to import", "Import Word Table", "1")
End If
With .tables(TableNo)
'copy cell contents from Word table cells to Excel cells
For iRow = 1 To .Rows.Count
For iCol = 1 To .Columns.Count
Cells(iRow, iCol) = WorksheetFunction.Trim( _
WorksheetFunction.Clean( _
Replace( _
Replace( _
Replace( _
.cell(iRow, iCol).Range.Text _
, vbLf, " ") _
, vbCr, " ") _
, vbTab, " ") _
))
Next iCol
Next iRow
End With
End With
Set wdDoc = Nothing
Макрос работает только с 1 файлом Ворд, и после выбора файла из примера "Азов 2-6" выдает ошибку 5941 "Запрашиваемый номер семейства не существует"
Не подошло. Руки надо ровнять дальше. А пока дальше воспользуемся тем, что уже придумали. Следующий Макрос от Gustav:
[vba]
Sub ImportWordTable()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim TableNo As Integer 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Integer 'column index in Excel
wdFileName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _
"Browse for file containing table to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
With wdDoc
TableNo = wdDoc.tables.Count
If TableNo = 0 Then
MsgBox "This document contains no tables", _
vbExclamation, "Import Word Table"
ElseIf TableNo > 1 Then
TableNo = InputBox("This Word document contains " & TableNo & " tables." & vbCrLf & _
"Enter table number of table to import", "Import Word Table", "1")
End If
With .tables(TableNo)
'copy cell contents from Word table cells to Excel cells
For iRow = 1 To .Rows.Count
For iCol = 1 To .Columns.Count
Cells(iRow, iCol) = WorksheetFunction.Trim( _
WorksheetFunction.Clean( _
Replace( _
Replace( _
Replace( _
.cell(iRow, iCol).Range.Text _
, vbLf, " ") _
, vbCr, " ") _
, vbTab, " ") _
))
Next iCol
Next iRow
End With
End With
Set wdDoc = Nothing
Макрос работает только с 1 файлом Ворд, и после выбора файла из примера "Азов 2-6" выдает ошибку 5941 "Запрашиваемый номер семейства не существует" Мурад
Sub ImportWordTable()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim TableNo As Integer 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Integer 'column index in Excel
wdFileName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _
"Browse for file containing table to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
With wdDoc
TableNo = wdDoc.tables.Count
If TableNo = 0 Then
MsgBox "This document contains no tables", _
vbExclamation, "Import Word Table"
ElseIf TableNo > 1 Then
TableNo = InputBox("This Word document contains " & TableNo & " tables." & vbCrLf & _
"Enter table number of table to import", "Import Word Table", "1")
End If
With .tables(TableNo)
'copy cell contents from Word table cells to Excel cells
For iRow = 1 To .Rows.Count
For iCol = 1 To .Columns.Count
Cells(iRow, iCol) = WorksheetFunction.Trim( _
WorksheetFunction.Clean( _
Replace( _
Replace( _
Replace( _
.cell(iRow, iCol).Range.Text _
, vbLf, " ") _
, vbCr, " ") _
, vbTab, " ") _
))
Next iCol
Next iRow
End With
End With
Set wdDoc = Nothing
Макрос работает только с 1 файлом Ворд, и после выбора файла из примера "Азов 2-6" выдает ошибку 5941 "Запрашиваемый номер семейства не существует" Автор - Мурад
Дата добавления - 08.11.2016 в 11:19
О, тему перенесли сюда. Так макрос откуда запускать? Из Visual Basic Ворда или Экселя?))) Вроде это вопрос по VBA был. Ну да ладно
О, тему перенесли сюда. Так макрос откуда запускать? Из Visual Basic Ворда или Экселя?))) Вроде это вопрос по VBA был. Ну да ладно Мурад
Вот! Нашел недостающую часть макроса, который работает с одним файлом и переносит данные из него в Excel:
[vba]
Sub CopyOldWordDoc()
Dim a As Variant, MainBook As Workbook, CurrentSheet As String
Set MainBook = ActiveWorkbook
CurrentSheet = ActiveSheet.Name
Dim FD As FileDialog
Dim iFileName As String
Dim Book As Workbook
Dim CheckNameBook As String
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Filters.Clear
.Filters.Add "Microsoft Word files", "*.doc"
.Filters.Add "All files", "*.*"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
.Title = "Открытие документа"
.ButtonName = "Открыть"
If .Show = False Then
MsgBox "Вы не указали файл - источник!", 48, "Ошибка"
Exit Sub
Else
iFileName = .SelectedItems(1)
End If
End With
Set FD = Nothing
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Открытие документа Word и копирование содержимого в новую книгу
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim WordApp As Object, CopyArea As Variant
Set WordApp = CreateObject("Word.Application")
WordApp.Application.Visible = False
WordApp.Documents.Open Filename:=iFileName
With WordApp.ActiveDocument
Set CopyArea = .Range(0, .Characters.Count)
CopyArea.Select
WordApp.Selection.Copy
End With
Workbooks.Add
Dim TempBook As Workbook
Set TempBook = ActiveWorkbook
'TempBook.Worksheets(1).Cells.NumberFormat = "@"
TempBook.Worksheets(1).Range("A1").Select
ActiveSheet.Paste
'Application.CutCopyMove = False
WordApp.Quit
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Поиск данных в новой книге и копирование их в форму
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MainBook.Activate
Worksheets(CurrentSheet).Activate
Range("A1").Activate
End Sub
Вот! Нашел недостающую часть макроса, который работает с одним файлом и переносит данные из него в Excel:
[vba]
Sub CopyOldWordDoc()
Dim a As Variant, MainBook As Workbook, CurrentSheet As String
Set MainBook = ActiveWorkbook
CurrentSheet = ActiveSheet.Name
Dim FD As FileDialog
Dim iFileName As String
Dim Book As Workbook
Dim CheckNameBook As String
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Filters.Clear
.Filters.Add "Microsoft Word files", "*.doc"
.Filters.Add "All files", "*.*"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
.Title = "Открытие документа"
.ButtonName = "Открыть"
If .Show = False Then
MsgBox "Вы не указали файл - источник!", 48, "Ошибка"
Exit Sub
Else
iFileName = .SelectedItems(1)
End If
End With
Set FD = Nothing
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Открытие документа Word и копирование содержимого в новую книгу
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim WordApp As Object, CopyArea As Variant
Set WordApp = CreateObject("Word.Application")
WordApp.Application.Visible = False
WordApp.Documents.Open Filename:=iFileName
With WordApp.ActiveDocument
Set CopyArea = .Range(0, .Characters.Count)
CopyArea.Select
WordApp.Selection.Copy
End With
Workbooks.Add
Dim TempBook As Workbook
Set TempBook = ActiveWorkbook
'TempBook.Worksheets(1).Cells.NumberFormat = "@"
TempBook.Worksheets(1).Range("A1").Select
ActiveSheet.Paste
'Application.CutCopyMove = False
WordApp.Quit
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Поиск данных в новой книге и копирование их в форму
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MainBook.Activate
Worksheets(CurrentSheet).Activate
Range("A1").Activate
End Sub
Sub CopyOldWordDoc()
Dim a As Variant, MainBook As Workbook, CurrentSheet As String
Set MainBook = ActiveWorkbook
CurrentSheet = ActiveSheet.Name
Dim FD As FileDialog
Dim iFileName As String
Dim Book As Workbook
Dim CheckNameBook As String
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Filters.Clear
.Filters.Add "Microsoft Word files", "*.doc"
.Filters.Add "All files", "*.*"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
.Title = "Открытие документа"
.ButtonName = "Открыть"
If .Show = False Then
MsgBox "Вы не указали файл - источник!", 48, "Ошибка"
Exit Sub
Else
iFileName = .SelectedItems(1)
End If
End With
Set FD = Nothing
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Открытие документа Word и копирование содержимого в новую книгу
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim WordApp As Object, CopyArea As Variant
Set WordApp = CreateObject("Word.Application")
WordApp.Application.Visible = False
WordApp.Documents.Open Filename:=iFileName
With WordApp.ActiveDocument
Set CopyArea = .Range(0, .Characters.Count)
CopyArea.Select
WordApp.Selection.Copy
End With
Workbooks.Add
Dim TempBook As Workbook
Set TempBook = ActiveWorkbook
'TempBook.Worksheets(1).Cells.NumberFormat = "@"
TempBook.Worksheets(1).Range("A1").Select
ActiveSheet.Paste
'Application.CutCopyMove = False
WordApp.Quit
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Поиск данных в новой книге и копирование их в форму
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
MainBook.Activate
Worksheets(CurrentSheet).Activate
Range("A1").Activate
End Sub
Имеем базу данных (список, таблицу - называйте как хотите) с информацией по платежам на листе Данные:
Задача: быстро распечатывать приходно-кассовый ордер (платежку, счет-фактуру. ) для любой нужной записи выбранной из этого списка. Поехали!
Шаг 1. Создаем бланк
На другом листе книги (назовем этот лист Бланк) создаем пустой бланк. Можно самостоятельно, можно воспользоваться готовыми бланками, взятыми, например, с сайтов журнала "Главный Бухгалтер" или сайта Microsoft. У меня получилось примерно так:
В пустые ячейки (Счет, Сумма, Принято от и т.д.) будут попадать данные из таблицы платежей с другого листа - чуть позже мы этим займемся.
Шаг 2. Подготовка таблицы платежей
Прежде чем брать данные из таблицы для нашего бланка, таблицу необходимо слегка модернизировать. А именно - вставить пустой столбец слева от таблицы. Мы будем использовать для ввода метки (пусть это будет английская буква "икс") напротив той строки, данные из которой мы хотим добавить в бланк:
Шаг 3. Связываем таблицу и бланк
Для связи используем функцию ВПР (VLOOKUP) - подробнее про нее можно почитать здесь. В нашем случае для того, чтобы вставить в ячейку F9 на бланке номер помеченного "x" платежа с листа Данные надо ввести в ячейку F9 такую формулу:
Т.е. в переводе на "русский понятный" функция должна найти в диапазоне A2:G16 на листе Данные строку, начинающуюся с символа "х" и выдать нам содержимое второго столбца этой строки, т.е. номер платежа.
Аналогичным образом заполняются все остальные ячейки на бланке - в формуле меняется только номер столбца.
В итоге должно получиться следующее:
Шаг 4. Чтобы не было двух "х".
Если пользователь введет "х" напротив нескольких строк, то функция ВПР будет брать только первое найденное значение. Чтобы не было такой многозначности, щелкните правой кнопкой мыши по ярлычку листа Данные и выберите Исходный текст (Source Code) . В появившееся окно редактора Visual Basic скопируйте следующий код:
Этот макрос не дает пользователю ввести больше одного "х" в первый столбец.
Вечер добрый.
Столкнулся с задачей, что нужно переносить готовые сводные таблицы (которые создаются макросом) в файл Word, да и еще с готовым и динамичным оформлением.
Как связать VBA Word и Excel не знаю, таблиц много и задача ежедневная.
Будьте добры, расскажите как автоматизировать такую задачу.
Подготовил маленький пример, дабы было понятно о чем речь
В Excel что было и в Word что должно стать, таблицы более массивные, но это для примера.
Вечер добрый.
Столкнулся с задачей, что нужно переносить готовые сводные таблицы (которые создаются макросом) в файл Word, да и еще с готовым и динамичным оформлением.
Как связать VBA Word и Excel не знаю, таблиц много и задача ежедневная.
Будьте добры, расскажите как автоматизировать такую задачу.
Подготовил маленький пример, дабы было понятно о чем речь
В Excel что было и в Word что должно стать, таблицы более массивные, но это для примера. Govard88
Подготовил маленький пример, дабы было понятно о чем речь
В Excel что было и в Word что должно стать, таблицы более массивные, но это для примера. Автор - Govard88
Дата добавления - 04.12.2015 в 16:48
Sub d()
Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")
Range("A1:C7").Copy
appWD.Documents.Add
appWD.ActiveDocument.Range.PasteSpecial , , wdInLine, , wdPasteOLEObject
appWD.Visible = True
End Sub
[/vba]
Если не сработает - подключите библиотеку microsoft.word в vba
если нужна вставка как таблицы - то wdPasteOLEObject
- вставка как картинки wdPasteMetafilePicture
Sub d()
Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")
Range("A1:C7").Copy
appWD.Documents.Add
appWD.ActiveDocument.Range.PasteSpecial , , wdInLine, , wdPasteOLEObject
appWD.Visible = True
End Sub
[/vba]
Если не сработает - подключите библиотеку microsoft.word в vba
если нужна вставка как таблицы - то wdPasteOLEObject
- вставка как картинки wdPasteMetafilePicture SLAVICK
Иногда все проще чем кажется с первого взгляда.
Sub d()
Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")
Range("A1:C7").Copy
appWD.Documents.Add
appWD.ActiveDocument.Range.PasteSpecial , , wdInLine, , wdPasteOLEObject
appWD.Visible = True
End Sub
[/vba]
Если не сработает - подключите библиотеку microsoft.word в vba
если нужна вставка как таблицы - то wdPasteOLEObject
- вставка как картинки wdPasteMetafilePicture Автор - SLAVICK
Дата добавления - 04.12.2015 в 18:03
SLAVICK, Спасибо большое, все работает
А библиотеки не было, всегда считал, что VBA в офисе работает без доп.настроек между своими приложениями.
SLAVICK, Спасибо большое, все работает
А библиотеки не было, всегда считал, что VBA в офисе работает без доп.настроек между своими приложениями. Govard88
SLAVICK, буду вам благодарна если подскажите как создать макрос, который переводит данные построчно записи excel в новый созданный файл word. Каждой строке соответствует свой файл. То есть передать данные строки таблицы, а не всей таблицы excel в определенной форме в файле word.
Я пыталась сделать что-то такое на оснвое вашего кода. Сама программирую на с++. Если найдете время, буду очень вам благодарна.
SLAVICK, буду вам благодарна если подскажите как создать макрос, который переводит данные построчно записи excel в новый созданный файл word. Каждой строке соответствует свой файл. То есть передать данные строки таблицы, а не всей таблицы excel в определенной форме в файле word.
Я пыталась сделать что-то такое на оснвое вашего кода. Сама программирую на с++. Если найдете время, буду очень вам благодарна. Dana0856
Я пыталась сделать что-то такое на оснвое вашего кода. Сама программирую на с++. Если найдете время, буду очень вам благодарна. Автор - Dana0856
Дата добавления - 09.07.2019 в 14:57
= Мир MS Excel/Статьи об Excel
Приёмы работы с книгами, листами, диапазонами, ячейками [6] |
Приёмы работы с формулами [13] |
Настройки Excel [3] |
Инструменты Excel [4] |
Интеграция Excel с другими приложениями [4] |
Форматирование [1] |
Выпадающие списки [2] |
Примечания [1] |
Сводные таблицы [1] |
Гиперссылки [1] |
Excel и интернет [1] |
Excel для Windows и Excel для Mac OS [2] |
- в таблице не должно быть объединенных ячеек. Вернее сказать так: ЕСЛИ в таблице есть объединённые ячейки, то надо быть готовым к тому, что при экспорте объединение будет отменено, и соответственно образуются лишние пустые строки и/или столбцы, что может нарушить структуру таблицы. В общем, объединённые ячейки - это зло :)
- все столбцы должны иметь уникальные названия, которые будут использоваться при слиянии. Если в таблице отсутствует первая строка с названиями столбцов, то её заменит первая строка данных, а значит, она в рассылке участвовать не будет.
На этом этапе в текстовом редакторе Word формируется документ, в который в дальнейшем будут внедряться данные электронной таблицы. Текст этого документа представляет собой общую для всех рассылок часть.
Предположим всем клиентам, у которых срок действия клубной карты истекает в следующем месяце, планируется разослать письма с уведомлением.
Текст письма будет одинаковым за исключением обращения, номера клубной карты и даты окончания её действия. Эти данные будут импортироваться из таблицы Excel (выделено синим)
Для более удобной дальнейшей работы при слиянии рекомендуется установить параметр Затенение полей в положение Всегда, чтобы отличать вставленные поля слияния от обычного текста. Если этот параметр включен, поля отображаются на сером фоне. На печать этот фон, естественно, не выводится.
Проще всего осуществить слияние данных, следуя указаниям Мастера слияния. В версиях после Word2003 Мастер слияния запускается с помощью кнопки Начать слияние на вкладке Рассылки
В версиях до Word2007 следует выполнить команду меню Сервис -- Письма и рассылки -- Слияние. Кроме того, для более удобной работы версиях до Word2007 можно вывести панель инструментов Слияние
Ещё раз обращаю внимание, что в бланке письма содержится только общий для всех писем текст, поэтому обращение выглядит как Уважаем!, а номер карты и дата пропущены.
Выбираем поле Имя, нажимаем Вставить, то же самое для поля Отчество. Закрываем окно Вставка полей слияния и добавляем пробелы между вставленными полями. Если параметр Затенение полей установлен в положение Всегда, то вставленные поля будут отчетливо видны на сером фоне. Устанавливаем курсор после №, снова нажимаем ссылку Другие элементы. , выбираем № клубной карты - Вставить. Аналогично вставляем поле Дата окончания действия карты
Кроме указанных выше полей требуется вставить окончание обращения ый(ая), которое зависит от значения поля Пол. Для этого воспользуемся специальным полем, позволяющим вставлять одно из двух значений в зависимости от данных. Поставим курсор сразу после слова "Уважаем", нажмём кнопку Правила на вкладке Рассылки и выберем вариант IF. THEN. ELSE. В версиях до Word2007 аналогичная кнопка называется Добавить поле Word и находится на панели инструментов Слияние
В раскрывшемся диалоговом окне зададим параметры
После нажатия ОК, получим результат
При нажатии кнопки запуска макрос на основе шаблона dot создаёт очередной файл, и в этом документе производит замену текста ("кода поля") из первой строки файла Excel на значение поля (из очередной строки с данными файла Excel)
Папка для сформированных документов создаётся автоматически, и содержит в имени текущую дату и время
(например, созданная папка будет называться Договоры, сформированные 01-05-2011 в 15-03-24)
Имена создаваемых файлов формируются объединением полей фамилия, имя и отчество, с добавлением расширения doc
PS: Макрос был написан достаточно давно, когда я только начинал изучать VBA, - так что код недостаточно универсален.
Но, в качестве примера, пожалуй, подойдёт (если вам нужен более функциональный макрос, воспользуйтесь универсальной надстройкой (см. ниже))
Ознакомьтесь также с универсальной надстройкой формирования документов по шаблонам,
которая может делать всё тоже самое, что и эта программа,
только в качестве шаблонов могут выступать, помимо документов Word, ещё текстовые файлы, и книги Excel.
В надстройке - много возможностей, и полезных дополнений: склонение ФИО в родительный и дательный падежи, автоматический вывод на печать (с заданным количеством копий), размещение созданных файлов в разных папках, создание и рассылка писем со вложениями, и множество других полезных функций.
По вышеприведённой ссылке программа заполнения документов Word из Excel доступна для бесплатного скачивания.
Внимание: просьбы о доработке макроса, описанного в этой статье, не принимаются.
Есть новая (универсальная) версия, - в которой уже есть практически всё, что может понадобиться.
Комментарии
Спасибо, за макрос, не могли бы подсказать что в нем изменить что бы обрабатывалась только та строка в которой выделенная ячейка?
Спасибо за макрос. Очень помог в работе.
Этот макрос уже не поддерживается.
Используйте новую (расширенную) версию программы, - там все работает без ошибок.
Макрос выдает ошибку (Type mismatch (Error 13)) при обработке ячейки с формулой, подскажите пожалуйста как решить эту проблему?
Здравствуйте. Спасибо вам за этот макрос, который помог мне в работе.
Не могли бы вы еще подсказать как сделать чтоб в шаблон Word прописывались данные из нескольких (разных) строк Excel?
Заранее спасибо.
Подскажите. а можно сделать чтобы макрос обрабатывал только те строки в которых стоит номер договора, а если пусто пропускал?
Ознакомился с программой. Серьезный труд. Снимаю шляпу. Но мне понравился именно этот макрос. С колонтитулами я разобрался - оказалось ничего сложного, да и сам макрос оброс уже кучей доработок. Затянуло, знаете ли ))
Евгений, воспользуйтесь универсальной программой для заполнения документов Word - там реализована подстановка значений в колонтитулы
Вова, если нет денег на заказ, есть только 2 варианта:
1) разобраться в этих макросах, и сделать самому (благо, примеров подобных макросов в интернете предостаточно)
2) обратиться за помощью на любой из форумов по Excel (но, опять же, если с вашей стороны никаких наработок нет, вряд ли кто сделает всю работу за вас)
А если в етом макросе сделать так чтоби он заменял дание сначла с строки активной ячейки а потом если одна из ячеек следующей строки = ячейке из предедущей строкии снова вставлял в ворд документ заменяемие поля и снова делел замену, и так до момента когда одна из ячеек не будеть раван ячеике из следуищей, строки тогад макрос по ектому условию не вставляет заменяемие поля а просто сохраняет ворд документ. То есь допустим мне нужно создать документ ворд по одному из людей дание по которому есть в нескольких строках. Пожалста помогите очень нужно, просто нет денег на заказ.
Вова, в этом случае универсальное решение сделать не получится - уж слишком много возможных вариантов расположения данных в Excel, и способов заполнения документов Word.
Оформляйте заказ на сайте - сделаю для вас макрос под ваши требования.
Подскажите пожалуйста, как сделать так, чтобы макрос формировал один документ ворд на основании данных из нескольких строк Excel?
А как реализовать те же возможности, только используя функцию слияния в Word. Чтобы каждый новый раз не формировался новый документ а запись делалась на новой странице?
Теперь доступна новая версия универсальной программы формирования документов по шаблонам.
Программа очень удобна для быстрого создания договоров и приказов, заполнения актов и инструкций, печати писем и соглашений, заполнения путевых листов и извещений, распечатки протоколов и соглашений, подстановки данных в шаблоны заявлений и доверенностей.
Количество файлов-шаблонов (Word, Excel, TXT) неограничено.
Замечательно. Я, долгое время искал нечто подобное. Но к счасливой случайности вышел на Ваш сайт. Установил панели для VBA. И ещё коу-что. Практически разобрался в работе данного макроса. В VBA я, недавно. Но поставил перед собой задачу изучить его. Для этого я, решил составить программу для заполнения бланков аттестатов о среднем образовании и бланков дипломов об окончании ПТУ. До этого они заполнялись вручную. Задачу в Excel, я, программно решил, не безВашего в ней участия, некоторые фрагменты кода. У меня база заполняется посредством форм в виде развёрнутого аттестата. А, вот транспортировка данных в Word с листов - разворот и последняя страница. Как-то чуть-чуть не вяжется с общим видом программы. Нельзя-ли макрос транспортировки "засунуть" под форму? Если можно, то не смогли бы Вы посоветовать мне как это сделать. Делаю эту программу потому, что на Украине все мучаются с авторизованым заполнением бланков об окончании учебных заведений. А, так я бы мог бесплатно, это моё безусловное кредо, предоставить программу желающим. Заранее Вам благодарен. Помогая мне Вы помогаете и до того замордованым классным руководителям школ Украины.
Читайте также: