我有一个checkbox,如果这个checkbox.Value = False我想禁用我的文本输入对象。在互联网上有一些建议,但使用的方法对我不起作用,因为没有找到方法。
我在.Valid-method上尝试过:
Dim tf As TextInput
Dim checkbox As CheckBox
Sub checkbox_click()
Set checkbox = ActiveDocument.FormFields("checkbox").CheckBox
Set tf = ActiveDocument.FormFields("textfield").TextInput
If checkbox.Value = False
tf.Valid = False
End If
End Sub但由于某些原因,这并不起作用。我在互联网上找到了tf.Enabled = False,但在我的情况下,这种方法是未知的。
发布于 2020-07-01 19:38:13
你需要更多像这样的东西:
Dim ff As FormField
Dim checkbox As CheckBox
.
.
Set checkbox = ActiveDocument.FormFields("checkbox").CheckBox
Set ff = ActiveDocument.FormFields("textfield")
If checkbox.Value = False
ff.Enabled = False
End If对于遗留FormField对象,您需要的一些属性与FormField本身相关联,而其他属性与FormField的子对象(如FormField.Checkbox )相关联
所以这里的问题是tf是一个FormField.TextInput对象,而.Enabled是FormField对象的一个属性。
与您的问题无关,但仅作为观察,在正常意义上的FormFields事件中没有与之关联的Word事件。每个字段的设置告诉Word运行一个指定的Sub "on entry“和/或"on exit”--仅此而已。没有实际的点击事件。使用使这些东西看起来像事件的名称没有问题,但我只是想我应该提一下。
发布于 2020-07-01 19:32:28
虽然互联网可以帮助你,但你也应该使用VBE中的对象浏览器和帮助。花5秒钟搜索FormField就能给出答案。
Dim tf As TextInput
Dim checkbox As CheckBox
Sub checkbox_click()
Set checkbox = ActiveDocument.FormFields("checkbox").CheckBox
If checkbox.Value = False
ActiveDocument.FormFields("textfield").Enabled = False
End If
End Subhttps://stackoverflow.com/questions/62674115
复制相似问题