【问题标题】:how to count true checkboxes in a word form?如何计算单词形式的真正复选框?
【发布时间】:2020-04-09 22:58:39
【问题描述】:

我在 Word 表单 (.dotm) 中有 5 个复选框。每次复选框 = true 时,结果框将增加 15(15 欧元 ..),如果复选框 = false,结果框将减少 15。

我暂时写了这个,但是即使我通过了 checkbox=false,结果仍然保持在 15。我遇到的问题是我的formfield对象不会随着复选框的状态更改为0或15而直接更改,我有一个偏移量,只有在单击另一个复选框后状态才会更改。

Sub totalWeek()

    Dim monday As CheckBox
    Dim summary As FormField

    Set monday = ActiveDocument.FormFields("CaseACocher8").CheckBox
    Set summary = ActiveDocument.FormFields("totalSemaine")

    If monday.Value = True Then
    summary.Result = 15
    Else: summary.Result = 0
    End If

End Sub

怎么了?

【问题讨论】:

  • 我无法重现所描述的问题。如果选中复选框,则文本框为 15;如果不是,则为 0。请注意,我假设表单保护已激活,并且这些确实是表单字段(因为您不报告错误,所以很可能是后者)。如果没有任何变化并且没有字段被锁定,您可能需要检查字段names 是否正确。如果您仍然遇到问题,您需要提供更多信息,以帮助我们重现环境、文档等。
  • 你好,我遇到的问题是我的formfield对象并没有直接跟随复选框的状态更改为0或15,我有一个偏移量,只有点击另一个后状态才会改变复选框。谢谢

标签: vba checkbox ms-word


【解决方案1】:

与表单域相关的任何操作仅在表单域退出进入时执行。这适用于执行计算以及执行与表单域相关的宏代码(“On Exit”和“On Enter”宏)。

不可能在一个表单域中执行操作(单击复选框)时看到另一个表单域中的状态变化。 总是必须先退出表单域/进入另一个表单域。

没有办法解决这个问题,没有技巧,没有“黑客”。

ActiveX 控件确实具有要求的功能,但由于它们不是为文档表面设计的,它们确实有其他缺点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 2018-04-21
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    相关资源
    最近更新 更多