Текстовые поля формы создаются динамически, им присваиваются имена, а некоторым из них присваивается значение. Мне нужно установить формат некоторых полей формы в валюту после их создания.
Я попытался установить форматирование в интерфейсе в окне свойств поля формы, которое работает. Но мне нужно сделать это, когда код генерирует поля формы. Я пробовал разные варианты свойств .TextInput и .Format. Других проблем с формами не было.
ActiveDocument.FormFields("name").TextInput.Format = "$#,##0"
Он должен установить поле формы, чтобы принимать любые входные данные и форматировать их как валюту. Свойства FormField, которые выглядят релевантными, в основном доступны только для чтения. Гугл ничего полезного не дал.
Цель формы — сопоставить несколько частей информации, а затем позволить пользователю заполнить остальные или обновить сопоставленные поля. Я использую formfields, потому что это форма, и ее структура должна быть защищена. Защита установлена на «Заполнение форм», но это не меняет результат для формата. Кроме того, поля формы добавляются/удаляются в зависимости от того, сколько строк возвращается. Поля формы генерируются с нуля каждый раз при сопоставлении и не имеют форматирования.
Для установки числового формата необходимо использовать TextInput.EditType
, например:
ActiveDocument.FormFields("name").TextInput.EditType Type:=wdNumberText, Format: = "Fr. 0.00"
Обратите внимание, что я получил это, просто записав макрос при изменении свойств поля формы...
Спасибо, Синди. Запись макросов до сих пор давала мне сомнительные результаты, поскольку функции в этом макросе часто были более сложными. Я не думал попробовать это.
Если вы не хотите, чтобы кто-то впоследствии мог изменить значения, почему вы используете поля форм? Ваша ссылка на «форматирование сбрасывается, когда данные сопоставляются с полем» указывает на то, что они не имеют защиты «заполнения форм», применяемой до их обновления.