Заполнение когда конкретные адреса - работает без проблем, а вот как правильно прописать тело цикла (Ответчики)? Ми.Контрол не помогает, или я его не правильно прописываю Klient Rojd MestoRojd - Текстбоксы
Подскажите как записать в Ворд документ данные с заполненной формы [vba]
Код
'2. Заполнение данных в Файл архива корректировки
ActiveDocument.TextBox1.Value = UF1.ComboBox1.Value 'Номер Участка ActiveDocument.TextBox2.Value = UF1.ComboBox3.Value 'Дата запроса ActiveDocument.TextBox3.Value = UF1.TextBox2.Value 'Номер дела ActiveDocument.TextBox4.Value = UF1.ComboBox4.Value 'Истец ActiveDocument.TextBox6.Value = UF1.ComboBox5.Value 'Предмет иска
'Ответчики For i = 1 To 10 Klient & i.Value = UF1.TXBclient & i.Value 'ФИО Клиента Rojd & i.Value = UF1.TXBclientBorn & i.Value 'Дата рождения Клиента MestoRojd & i.Value = UF1.TXBclientUroj & i.Value 'Место рождения Клиента Next i
'. Сохраняем файл как "..." ChangeFileOpenDirectory "C:\Тест ВБ\Архив корректировки"
Заполнение когда конкретные адреса - работает без проблем, а вот как правильно прописать тело цикла (Ответчики)? Ми.Контрол не помогает, или я его не правильно прописываю Klient Rojd MestoRojd - ТекстбоксыSkorpika
Сообщение отредактировал Skorpika - Четверг, 22.01.2015, 22:37
RAN, Всё здесь кроме "'Ответчики..." работает, просто оставил "Ответчиков" только чтобы Вам было понятно что и куда нужно вставить (экспериментов уже там достаточно). Klient(i) Rojd(i) MestoRojd(i) - Текстбоксы в активном листе ворд (там табличка 3*10 из 10 таких пустых строк), данные в них вставляем из заполненных текстбоксов с формы UF1.
RAN, Всё здесь кроме "'Ответчики..." работает, просто оставил "Ответчиков" только чтобы Вам было понятно что и куда нужно вставить (экспериментов уже там достаточно). Klient(i) Rojd(i) MestoRojd(i) - Текстбоксы в активном листе ворд (там табличка 3*10 из 10 таких пустых строк), данные в них вставляем из заполненных текстбоксов с формы UF1.Skorpika
For i = 1 To 1 ActiveDocument.Klient1.Value = UF1.TXBclient1.Value ActiveDocument.Rojd1.Value = UF1.TXBclientBorn1.Value ActiveDocument.MestoRojd1.Value = UF1.TXBclientUroj1.Value ActiveDocument.Projiv1.Value = UF1.TXBclientProjev1.Value If UF1.KolVoClientS = 1 Then Exit For Else End If ActiveDocument.Klient2.Value = UF1.TXBclient2.Value ActiveDocument.Rojd2.Value = UF1.TXBclientBorn2.Value ActiveDocument.MestoRojd2.Value = UF1.TXBclientUroj2.Value ActiveDocument.Projiv2.Value = UF1.TXBclientProjev2.Value If UF1.KolVoClientS = 2 Then Exit For Else End If ActiveDocument.Klient3.Value = UF1.TXBclient3.Value ActiveDocument.Rojd3.Value = UF1.TXBclientBorn3.Value ActiveDocument.MestoRojd3.Value = UF1.TXBclientUroj3.Value ActiveDocument.Projiv3.Value = UF1.TXBclientProjev3.Value If UF1.KolVoClientS = 3 Then Exit For Else End If ActiveDocument.Klient4.Value = UF1.TXBclient4.Value ActiveDocument.Rojd4.Value = UF1.TXBclientBorn4.Value ActiveDocument.MestoRojd4.Value = UF1.TXBclientUroj4.Value ActiveDocument.Projiv4.Value = UF1.TXBclientProjev4.Value If UF1.KolVoClientS = 4 Then Exit For Else End If ActiveDocument.Klient5.Value = UF1.TXBclient5.Value ActiveDocument.Rojd5.Value = UF1.TXBclientBorn5.Value ActiveDocument.MestoRojd5.Value = UF1.TXBclientUroj5.Value ActiveDocument.Projiv5.Value = UF1.TXBclientProjev5.Value If UF1.KolVoClientS = 5 Then Exit For Else End If ActiveDocument.Klient6.Value = UF1.TXBclient6.Value ActiveDocument.Rojd6.Value = UF1.TXBclientBorn6.Value ActiveDocument.MestoRojd6.Value = UF1.TXBclientUroj6.Value ActiveDocument.Projiv6.Value = UF1.TXBclientProjev6.Value If UF1.KolVoClientS = 6 Then Exit For Else End If ActiveDocument.Klient7.Value = UF1.TXBclient7.Value ActiveDocument.Rojd7.Value = UF1.TXBclientBorn7.Value ActiveDocument.MestoRojd7.Value = UF1.TXBclientUroj7.Value ActiveDocument.Projiv7.Value = UF1.TXBclientProjev7.Value If UF1.KolVoClientS = 7 Then Exit For Else End If ActiveDocument.Klient8.Value = UF1.TXBclient8.Value ActiveDocument.Rojd8.Value = UF1.TXBclientBorn8.Value ActiveDocument.MestoRojd8.Value = UF1.TXBclientUroj8.Value ActiveDocument.Projiv8.Value = UF1.TXBclientProjev8.Value If UF1.KolVoClientS = 8 Then Exit For Else End If ActiveDocument.Klient9.Value = UF1.TXBclient9.Value ActiveDocument.Rojd9.Value = UF1.TXBclientBorn9.Value ActiveDocument.MestoRojd9.Value = UF1.TXBclientUroj9.Value ActiveDocument.Projiv9.Value = UF1.TXBclientProjev9.Value If UF1.KolVoClientS = 9 Then Exit For Else End If ActiveDocument.Klient10.Value = UF1.TXBclient10.Value ActiveDocument.Rojd10.Value = UF1.TXBclientBorn10.Value ActiveDocument.MestoRojd10.Value = UF1.TXBclientUroj10.Value ActiveDocument.Projiv10.Value = UF1.TXBclientProjev10.Value
Next i
[/vba]
Только циклом может всё таки проще? как грамотно прописать цикл?
Ну можно и так... [vba]
Код
For i = 1 To 1 ActiveDocument.Klient1.Value = UF1.TXBclient1.Value ActiveDocument.Rojd1.Value = UF1.TXBclientBorn1.Value ActiveDocument.MestoRojd1.Value = UF1.TXBclientUroj1.Value ActiveDocument.Projiv1.Value = UF1.TXBclientProjev1.Value If UF1.KolVoClientS = 1 Then Exit For Else End If ActiveDocument.Klient2.Value = UF1.TXBclient2.Value ActiveDocument.Rojd2.Value = UF1.TXBclientBorn2.Value ActiveDocument.MestoRojd2.Value = UF1.TXBclientUroj2.Value ActiveDocument.Projiv2.Value = UF1.TXBclientProjev2.Value If UF1.KolVoClientS = 2 Then Exit For Else End If ActiveDocument.Klient3.Value = UF1.TXBclient3.Value ActiveDocument.Rojd3.Value = UF1.TXBclientBorn3.Value ActiveDocument.MestoRojd3.Value = UF1.TXBclientUroj3.Value ActiveDocument.Projiv3.Value = UF1.TXBclientProjev3.Value If UF1.KolVoClientS = 3 Then Exit For Else End If ActiveDocument.Klient4.Value = UF1.TXBclient4.Value ActiveDocument.Rojd4.Value = UF1.TXBclientBorn4.Value ActiveDocument.MestoRojd4.Value = UF1.TXBclientUroj4.Value ActiveDocument.Projiv4.Value = UF1.TXBclientProjev4.Value If UF1.KolVoClientS = 4 Then Exit For Else End If ActiveDocument.Klient5.Value = UF1.TXBclient5.Value ActiveDocument.Rojd5.Value = UF1.TXBclientBorn5.Value ActiveDocument.MestoRojd5.Value = UF1.TXBclientUroj5.Value ActiveDocument.Projiv5.Value = UF1.TXBclientProjev5.Value If UF1.KolVoClientS = 5 Then Exit For Else End If ActiveDocument.Klient6.Value = UF1.TXBclient6.Value ActiveDocument.Rojd6.Value = UF1.TXBclientBorn6.Value ActiveDocument.MestoRojd6.Value = UF1.TXBclientUroj6.Value ActiveDocument.Projiv6.Value = UF1.TXBclientProjev6.Value If UF1.KolVoClientS = 6 Then Exit For Else End If ActiveDocument.Klient7.Value = UF1.TXBclient7.Value ActiveDocument.Rojd7.Value = UF1.TXBclientBorn7.Value ActiveDocument.MestoRojd7.Value = UF1.TXBclientUroj7.Value ActiveDocument.Projiv7.Value = UF1.TXBclientProjev7.Value If UF1.KolVoClientS = 7 Then Exit For Else End If ActiveDocument.Klient8.Value = UF1.TXBclient8.Value ActiveDocument.Rojd8.Value = UF1.TXBclientBorn8.Value ActiveDocument.MestoRojd8.Value = UF1.TXBclientUroj8.Value ActiveDocument.Projiv8.Value = UF1.TXBclientProjev8.Value If UF1.KolVoClientS = 8 Then Exit For Else End If ActiveDocument.Klient9.Value = UF1.TXBclient9.Value ActiveDocument.Rojd9.Value = UF1.TXBclientBorn9.Value ActiveDocument.MestoRojd9.Value = UF1.TXBclientUroj9.Value ActiveDocument.Projiv9.Value = UF1.TXBclientProjev9.Value If UF1.KolVoClientS = 9 Then Exit For Else End If ActiveDocument.Klient10.Value = UF1.TXBclient10.Value ActiveDocument.Rojd10.Value = UF1.TXBclientBorn10.Value ActiveDocument.MestoRojd10.Value = UF1.TXBclientUroj10.Value ActiveDocument.Projiv10.Value = UF1.TXBclientProjev10.Value
Next i
[/vba]
Только циклом может всё таки проще? как грамотно прописать цикл?Skorpika
Сообщение отредактировал Skorpika - Пятница, 23.01.2015, 01:03
Хорошо, может так буде проще. В приложенном файле нужно при нажатии кнопки на форме циклом перенести данные с формы в документ WORD. Подскажите командную строку спецы.
Хорошо, может так буде проще. В приложенном файле нужно при нажатии кнопки на форме циклом перенести данные с формы в документ WORD. Подскажите командную строку спецы.Skorpika
RAN, сорь, что значит не работают чекбоксы в ворде? ну вот второй вариант файла, перебором все работает, но мне нужен цикл, Me.Control в форме работает нормально, а вот в док-те ворд я не знаю как правильно прописать переменную цикла i с активный документом. Ну или так: в ворде 2003 и 2013 работает (кроме цикла) всё прекрасно
RAN, сорь, что значит не работают чекбоксы в ворде? ну вот второй вариант файла, перебором все работает, но мне нужен цикл, Me.Control в форме работает нормально, а вот в док-те ворд я не знаю как правильно прописать переменную цикла i с активный документом. Ну или так: в ворде 2003 и 2013 работает (кроме цикла) всё прекрасноSkorpika
Андрей, может ты и прав, иной раз лучше уголь разгрузить, чем рабочий фрагмент программы написать... Просто это контрольный файл, то есть прога в шаблон документа вносит данные людей (до 16 человек), создает и заполняет несколько одинаковых документов (меняется только адрес получателя запроса), и как правило в 10% случаев во вносимых данных случается опечатка, если заметили пока прога работает, исправляют и всё, а когда замечают ошибку в готовых документах при упаковывании в конверт, то тут уже тоскливее, ради 1 буквы нужно всех заново вбивать или открывать с десяток сохраненных запросов и исправлять в ручную в каждом файле. Вот и пришлось решать, создавать файл, где просто содержаться данные которые вносились, форма открывает этот "контрольный" файл (с заначкой введенных ранее данных), расставляет по местам, исправляешь ошибку и одним кликом все снова сформировано, распечатано, сохранено, закрыто. Этот контрольный файл и сейчас существует и работает оч чудненько. Просто глядя на строки программы тоска берет. Там прога рассчитана на 16 человек по 4 Текстбокса на каждого (фио, дата рожд, место рожд, прож.) по итогу 64 Тбокса плюс ещё пара-тройка общих данных. И перенос этих данных туда и, при необходимости обратно занимает в моем варианте 6 общих Тбоксов и 4*16 по людям. Перенос (в моем варианте) занимает 6 строк программы (общий перенос) + 10 строк на каждого. По итогу 6+160= 166 строк программы. А мне просто хотелось бы 6 общих данных + 6 строк на данные людей (1.фор и=1... 2.активдокумент.контрол.ФИО"и"=юзерформ.контрол.ФИО"и"... 3. по дате рожд тоже... 4. по месту рожд... 5.прожив... 6. некст И... ) Итого 12 строк. 12<166 вот и суть проблемы. Ладно, хрен с ней, с этой горой.... обойдём её, сделаю контрольный файл в экселе, ведь он всё одно нигде не участвует. в любом случае спс, Ran, плюсик добавил
Андрей, может ты и прав, иной раз лучше уголь разгрузить, чем рабочий фрагмент программы написать... Просто это контрольный файл, то есть прога в шаблон документа вносит данные людей (до 16 человек), создает и заполняет несколько одинаковых документов (меняется только адрес получателя запроса), и как правило в 10% случаев во вносимых данных случается опечатка, если заметили пока прога работает, исправляют и всё, а когда замечают ошибку в готовых документах при упаковывании в конверт, то тут уже тоскливее, ради 1 буквы нужно всех заново вбивать или открывать с десяток сохраненных запросов и исправлять в ручную в каждом файле. Вот и пришлось решать, создавать файл, где просто содержаться данные которые вносились, форма открывает этот "контрольный" файл (с заначкой введенных ранее данных), расставляет по местам, исправляешь ошибку и одним кликом все снова сформировано, распечатано, сохранено, закрыто. Этот контрольный файл и сейчас существует и работает оч чудненько. Просто глядя на строки программы тоска берет. Там прога рассчитана на 16 человек по 4 Текстбокса на каждого (фио, дата рожд, место рожд, прож.) по итогу 64 Тбокса плюс ещё пара-тройка общих данных. И перенос этих данных туда и, при необходимости обратно занимает в моем варианте 6 общих Тбоксов и 4*16 по людям. Перенос (в моем варианте) занимает 6 строк программы (общий перенос) + 10 строк на каждого. По итогу 6+160= 166 строк программы. А мне просто хотелось бы 6 общих данных + 6 строк на данные людей (1.фор и=1... 2.активдокумент.контрол.ФИО"и"=юзерформ.контрол.ФИО"и"... 3. по дате рожд тоже... 4. по месту рожд... 5.прожив... 6. некст И... ) Итого 12 строк. 12<166 вот и суть проблемы. Ладно, хрен с ней, с этой горой.... обойдём её, сделаю контрольный файл в экселе, ведь он всё одно нигде не участвует. в любом случае спс, Ran, плюсик добавил Skorpika
Сообщение отредактировал Skorpika - Суббота, 24.01.2015, 21:45