在Word 2007

时间:2017-10-26 03:06:43

标签: vba ms-office

我正在使用Word 2007中设计的表单。我有Yes或No CheckBox。我通过Developer Ribbon添加了复选框。 CheckBox允许用户选择是和否。但是,我们的条件是允许用户选择是或否。

处理方案。我在宏中添加了一个条件来验证ChkYes是True还是False。下面是我的语法,如下所示抛出错误

“运行时错误:5941集合中请求的成员不存在。”

Sub Macro1()

  Application.Run MacroName:="isChecked"
End Sub

Sub isChecked()

If ActiveDocument.FormFields("ChkYes").CheckBox.Value = True Then
    ActiveDocument.FormFields("ChkNo").CheckBox.Value = False
End If

End Sub

1 个答案:

答案 0 :(得分:0)

这就是您要找的allow one checkbox out of a group

将以下代码指定为所有复选框的Entry宏,并保护表单。然后,每个框架中的复选框表单字段将是互斥的。

Sub MakeCheckBoxesExclusive()

Dim oField As FormField

For Each oField In Selection.Frames(1).Range.FormFields
    oField.CheckBox.Value = False
Next oField

Selection.FormFields(1).CheckBox.Value = True

End Sub

这样做有一个轻微但不幸的缺点;如果用户选中或使用他们的键盘箭头键从一个表单字段转到下一个表单字段,则每个复选框表单字段将在它们到达时依次被选中(并且其他表单字段将被取消选择);所以他们必须使用鼠标而不是键盘来选择复选框。