Страницы: 1
RSS
Заполнение элементов управления word из excel
 
Есть реестр в excel, нужно из него заполнить чекбоксы и поля ввода в word
SendKeys не подходит - часто сбоит из-за внешних факторов
Изменено: Сергей - 27.04.2021 18:08:28
 
wd.FormFields(2).CheckBox.Value= True ' True False управляет чекбоксом
wd.FormFields(1).TextInput.Default = "надпись" ' ставит в поле надпись по умолчанию
wd.FormFields(1).TextInput.EditType Type:=wdRegularText ' делает в поле надпись по умолчанию видимой

со второго и в последующих выдает ошибку кто знает почему?
wd.FormFields(2).TextInput.EditType Type:=wdRegularText ' ошибка Run-time error 4198
Изменено: Сергей - 29.04.2021 11:36:07
 
Потому, что Excel не знает, что такое wdRegularText. Используйте значения констант Word, или используйте раннее связывание.
 
Цитата
RAN написал:
Потому, что Excel не знает, что такое wdRegularText
почему тогда первый он отрабатывает без ошибок?
Код
wd.FormFields(1).TextInput.EditType Type:=wdRegularText ' работает
Цитата
Используйте значения констант Word
это как?  в Word тоже на первой строке норм, на второй выдает ошибку
Код
    ActiveDocument.FormFields(1).TextInput.EditType Type:=wdRegularText, Default:="1" ' работает
    ActiveDocument.FormFields(2).TextInput.EditType Type:=wdRegularText, Default:="2" ' ошибка 
для wdRegularText значение, как я понял 0, но так тоже ошибка
Код
    ActiveDocument.FormFields(2).TextInput.EditType Type:=0, Default:="надпись" ' ошибка 
это должно быть просто, прошу подскажите правильный скрипт или скажите самоучке где/куда/как посмотреть
 
снагличал через On Error Resume Next но что делать, выбирать не приходится...
Изменено: Сергей - 28.04.2021 15:53:16
 
Никогда не пишите макросы без Option Explicit!
Владимир
 
Цитата
sokol92 написал:
Никогда не пишите макросы без Option Explicit!
вот почему я не пишу макросы :-)

Сергей, а FormFields(2) то присутствует нужного типа?
По вопросам из тем форума, личку не читаю.
 
Цитата
sokol92 написал:
Никогда не пишите макросы без Option Explicit!
А в чем фишка? Майкрософт пишет: Необязательный элемент. Включает Option Explicit проверку. Если параметр On или Off не указан, по умолчанию используется значение On .

Цитата
БМВ написал:
Сергей , а FormFields(2) то присутствует нужного типа?
Да, были первые 3 поля, сейчас 3 чекбокса - учитывая что с On Error криво но работает переключился на чекбоксы, там та же трабла.
Код
wd.FormFields(1).CheckBox.Default = True ' работает
wd.FormFields(2).CheckBox.Default = True ' нет
wd.FormFields(3).CheckBox.Default = True ' нет

Цитата
БМВ написал:
вот почему я не пишу макросы :-)
Питон? Если уж Барсик такой сложный, то куда нам с Питоном баловаться.
 
wd.FormFields(i).CheckBox.Value= True ' работает для всех i в т.ч. в запароленных файлах
остается вопрос по полям

+ в запароленном docx-файле данные в поля не вносятся даже с On Error Resume Next
Изменено: Сергей - 05.05.2021 13:39:59
Страницы: 1
Наверх