во вложение обработка работает не так как нужно. задача стоит выделять не одну строку для переноса в word а любое количество и чтобы они попадали в определенную таблицу в ворд или есть какие то другие более простые решения переноса определенных строк в шаблон
во вложение обработка работает не так как нужно. задача стоит выделять не одну строку для переноса в word а любое количество и чтобы они попадали в определенную таблицу в ворд или есть какие то другие более простые решения переноса определенных строк в шаблонgilenok
Если договор нужно заполнять именно макросом, то вставляете в нужные места шаблона договора закладки, а потом макросом (обращаясь по имени закладки) на это место вставляете свои данные. (вместо закладок можно использовать поля, как удобнее...) Если задача просто получить заполненные договоры, то используйте стандартную функцию "Слияние документов" (в Word, вкладка на ленте "Рассылки" -> "Начать слияние" -> "Пошаговый мастер слияния").
Если договор нужно заполнять именно макросом, то вставляете в нужные места шаблона договора закладки, а потом макросом (обращаясь по имени закладки) на это место вставляете свои данные. (вместо закладок можно использовать поля, как удобнее...) Если задача просто получить заполненные договоры, то используйте стандартную функцию "Слияние документов" (в Word, вкладка на ленте "Рассылки" -> "Начать слияние" -> "Пошаговый мастер слияния").KSV
Если договор нужно заполнять именно макросом, то вставляете в нужные места шаблона договора закладки, а потом макросом (обращаясь по имени закладки) на это место вставляете свои данные. (вместо закладок можно использовать поля, как удобнее...) мне нужно сделать так но я не понимаю как это сделать можете прислать пример
Если договор нужно заполнять именно макросом, то вставляете в нужные места шаблона договора закладки, а потом макросом (обращаясь по имени закладки) на это место вставляете свои данные. (вместо закладок можно использовать поля, как удобнее...) мне нужно сделать так но я не понимаю как это сделать можете прислать примерgilenok
Думаю, что на данном этапе, Вам проще воспользоваться стандартными средствами слияния документов - это полностью решает Вашу задачу и дает некоторые преимущества, например, "перемещение" записям (см. Var1.png, красные стрелки), поиск нужного договора по любым критериям, фильтры (полезно, например, если нужно распечатать только те договоры, "Заказ-наряд" на которые оформил Сусанин И.П.) и т.д. Если Вы не разобрались, как этим пользоваться - см. Var1.png, синие стрелки - установить курсор ввода в нужное место в тексте (1), открыть список полей слияния (2) и выбрать нужное поле. Чтобы распечатать (или поместить в другой документ) все (или отобранные фильтром) ЗАПОЛНЕННЫЕ договоры, нажмите "Найти и объединить" (см. Var1.png, обведено желтым). А для удобства использования (наглядности) можно включить заливку серым цветом вставленных полей (будет видно только на экране, а при печати фон будет белым, как и прежде) и отображение значений полей, вместо их названий (см. Var1.png, обведено зеленым). Небольшое замечание: Путь источника хранится, как абсолютный, т.е., при перемещении этих документов в другую папку, при открытии Договор.doc, заново будет запрошен путь к источнику. Сейчас сохранен путь: C:\1233\..., т.е. если Вы распакуете архив в корень диска С:, то пути переназначать не придется, т.к. все и так увидится. Для работы необходимо открыть "C:\1233\Var1 (слияние)\Договор.doc", перейти на вкладку "РАССЫЛКИ" и делать, что нужно...
Вариант 2 (с макросом) - Открыть "C:\1233\Var2 (макрос)\Договор.xls" и нажать кнопку "Формировать". Заполненные договоры будут сохранены в той же папке, где лежит Договор.xls. Если сохранять не нужно, а нужно только заполнить и показать - закомментируйте (или удалите) строку: [vba]
Код
WD.SaveAs f & r
[/vba]
Думаю, что на данном этапе, Вам проще воспользоваться стандартными средствами слияния документов - это полностью решает Вашу задачу и дает некоторые преимущества, например, "перемещение" записям (см. Var1.png, красные стрелки), поиск нужного договора по любым критериям, фильтры (полезно, например, если нужно распечатать только те договоры, "Заказ-наряд" на которые оформил Сусанин И.П.) и т.д. Если Вы не разобрались, как этим пользоваться - см. Var1.png, синие стрелки - установить курсор ввода в нужное место в тексте (1), открыть список полей слияния (2) и выбрать нужное поле. Чтобы распечатать (или поместить в другой документ) все (или отобранные фильтром) ЗАПОЛНЕННЫЕ договоры, нажмите "Найти и объединить" (см. Var1.png, обведено желтым). А для удобства использования (наглядности) можно включить заливку серым цветом вставленных полей (будет видно только на экране, а при печати фон будет белым, как и прежде) и отображение значений полей, вместо их названий (см. Var1.png, обведено зеленым). Небольшое замечание: Путь источника хранится, как абсолютный, т.е., при перемещении этих документов в другую папку, при открытии Договор.doc, заново будет запрошен путь к источнику. Сейчас сохранен путь: C:\1233\..., т.е. если Вы распакуете архив в корень диска С:, то пути переназначать не придется, т.к. все и так увидится. Для работы необходимо открыть "C:\1233\Var1 (слияние)\Договор.doc", перейти на вкладку "РАССЫЛКИ" и делать, что нужно...
Вариант 2 (с макросом) - Открыть "C:\1233\Var2 (макрос)\Договор.xls" и нажать кнопку "Формировать". Заполненные договоры будут сохранены в той же папке, где лежит Договор.xls. Если сохранять не нужно, а нужно только заполнить и показать - закомментируйте (или удалите) строку: [vba]
KSV сложность в том что таблицы могут меняться и должны переносится полностью во вложении чуть изменил данную таблицу( тоесть в файл заявка заказчика.docx должна полностью попасть таблица с первого листа и можно с заменой как удобно. а в файл акт о приеме-передаче электрооборудования.docx должна попасть таблица со второго листа и самое сложное что сегодня в табилце 5 записей завтра может быть 120 и после завтра 50 и эта таблица должна попадать
KSV сложность в том что таблицы могут меняться и должны переносится полностью во вложении чуть изменил данную таблицу( тоесть в файл заявка заказчика.docx должна полностью попасть таблица с первого листа и можно с заменой как удобно. а в файл акт о приеме-передаче электрооборудования.docx должна попасть таблица со второго листа и самое сложное что сегодня в табилце 5 записей завтра может быть 120 и после завтра 50 и эта таблица должна попадатьgilenok
Во второй таблице я оставлял шапку и 1 строку. Таблицу ексел обрабатывал построчно Вот из моей проги кусок: [vba]
Код
If Список_мероприятий.ListCount > 0 Then With .Tables(3) For J = 0 To Список_мероприятий.ListCount - 1 s = Split(Список_мероприятий.List(J), " - ") .Cell(.Rows.Count, 1).Select
If J > 0 Then Selection.InsertRowsBelow 1
.Cell(J + 3, 1).Range.Text = s(0) & " Час" .Cell(J + 3, 2).Select Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft .Cell(J + 3, 2).Range.Text = s(1) Next J End With End If
[/vba]
Во второй таблице я оставлял шапку и 1 строку. Таблицу ексел обрабатывал построчно Вот из моей проги кусок: [vba]
Код
If Список_мероприятий.ListCount > 0 Then With .Tables(3) For J = 0 To Список_мероприятий.ListCount - 1 s = Split(Список_мероприятий.List(J), " - ") .Cell(.Rows.Count, 1).Select
If J > 0 Then Selection.InsertRowsBelow 1
.Cell(J + 3, 1).Range.Text = s(0) & " Час" .Cell(J + 3, 2).Select Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft .Cell(J + 3, 2).Range.Text = s(1) Next J End With End If