【问题标题】:What is the difference between fields and formfields?字段和表单字段有什么区别?
【发布时间】:2017-04-05 07:54:57
【问题描述】:

在word中按alt+F9可以显示“FieldCodes”

如何使用 vba 以编程方式访问它并将它们与表单域配对?

您可以通过? Application.ActiveDocument.Fields(1).代码

您可以通过 Application.ActiveDocument.FormFields(1) 访问表单字段

但是对于索引匹配是否有任何保证? 表单字段可以不是字段吗?字段可以不是表单字段吗?

将这些内容从 FORMTEXT 中更改是否会产生任何意想不到的副作用,或者这些基本上是好的和友好的链接 id's/display 值允许您轻松查看它们并在它们之间进行交换?

编辑:我想出了以下内容来获取字段代码。我仍然不确定编辑它们是否是个好主意,或者它们代表什么。

    Application.ActiveDocument.FormFields(1).Range.Fields(1).Code

【问题讨论】:

    标签: vba ms-word word-field


    【解决方案1】:

    字段是通用对象,它们可以是:

    • 文档的属性(内置或自定义),
    • 邮寄/合并邮件,
    • 计算,
    • 表单域,
    • ...

    表单域是一个输入域。

    看看标签信息中的链接,有很多有趣的东西!

    您可以通过它们自己的集合访问它们(在 VBE 中按 F2 以使用对象浏览器)。

    对于字段,一般集合位于Application.ActiveDocument.Fields
    但是您可以在很多对象中找到它们(使用对象浏览器检查!)。
    查看that answer 了解您可以在其中找到它的其他对象! ;)


    据我所知,不可能像在 Field 中那样在 FormField 中嵌套一些东西。

    我不确定是否理解这个问题:

    "Will changing these away from FORMTEXT have any unintended side effects, 
    or are these basically nice and friendly linking id's / display values
    allowing you to view them and swap between them with ease?"
    

    如果您想创建用户可以填写的表单,您需要坚持使用FormFields

    如果您想在文档的特定位置显示值,Fields 是您的最佳选择。
    我什至建议将自定义文档属性用于一般用途,将 MergeMail 用于邮件。 ;)

    【讨论】:

    • 哇哦,对象浏览器太棒了。我会将您的答案标记为答案,但我还有几个未回答的问题:“表单字段的范围是否可以包含多个“通用”字段?”和“将这些从 FORMTEXT 中更改是否会产生任何意想不到的副作用,或者这些基本上是好的和友好的链接 id/显示值允许您轻松查看它们并在它们之间进行交换?”
    • 当我使用 alt+f9 查看字段代码时,FORMTEXT 出现了。我尝试编辑这些只是为了看看会发生什么,但它们被 INVALID 书签取代。我仍然不确定文本 FORMTEXT 应该在字段代码中表示什么。但由于努力+诚意,我接受了你的回答。
    • 为了澄清,在文档中放置一个遗留(表单域)字段,按 alt+f9 ,您会看到 FORMTEXT 出现在括号中。
    • @RyanTheLeach :我不知道您使用的是哪个版本,但FORMTEXT 至少从 2010 年开始似乎就不是一个领域......所以,是的,真的很遗产!^^ 检查列表Fieldsword-field 的标签信息中。而且我的 FormFields 不会像普通的那样切换到字段代码,即使使用 Alt+F9
    • 奇怪。感谢您的帮助,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2011-12-05
    • 2019-04-18
    相关资源
    最近更新 更多