【问题标题】:Setting Word formfield to format as currency automatically将 Word 表单域设置为自动格式化为货币
【发布时间】:2019-08-30 00:25:44
【问题描述】:

文本表单域是动态创建、命名的,并且有些是被赋值的。我需要在创建某些表单字段后将其格式设置为货币。

我已经尝试在前端的表单域属性窗口中设置格式,这很有效。但是当代码生成表单字段时,我需要这样做。我尝试了 .TextInput 和 .Format 属性的不同变体。表单域没有任何其他问题。

ActiveDocument.FormFields("name").TextInput.Format="$#,##0"

它应该将表单域设置为接受任何输入并将其格式化为货币。 FormField 看起来相关的属性似乎大多是只读的。 Google 没有提供任何有用的信息。

表单的目的是映射几条信息,然后让用户填写其余信息,或更新映射的字段。我使用表单域是因为它是一个表单,并且它的结构需要受到保护。保护设置为“填写表格”,但这不会改变格式的结果。此外,根据返回的行数来添加/删除表单域。每次映射时,表单域都是从头开始生成的,并且它们没有格式。

【问题讨论】:

  • 除非您打算让某人之后能够更改值,否则您为什么要使用表单域?您对“将数据映射到字段时重置格式”的引用表明它们在更新之前没有应用“填写表单”保护。

标签: vba ms-word form-fields


【解决方案1】:

设置数字格式需要使用TextInput.EditType,例如:

ActiveDocument.FormFields("name").TextInput.EditType Type:=wdNumberText, Format:="Fr. 0.00"

请注意,我是通过在更改表单字段属性时简单地记录一个宏来实现的...

【讨论】:

  • 谢谢你,辛迪。到目前为止,录制宏对我来说已经产生了不确定的结果,因为这个宏中的功能通常更复杂。我没想过要尝试。
猜你喜欢
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-07
  • 2016-05-03
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
相关资源
最近更新 更多