vba userform检查GroupName而不是单个按钮

时间:2015-09-30 22:08:29

标签: vba userform groupname

我正在使用VBA Userform。 MassPrompt用户表单有一组六个GroupNames和一些文本框。每个GroupName包含两个或更多单选按钮 我想在GroupName“GROnly”中的任何元素发生变化时随时触发以下代码。如果用户根据另一组中的选择在“GROnly”中选择了不合适的按钮,我想显示一条警告消息并再次显示MassPrompt用户表。
现在,我已经将代码分配给了一个按钮“GROnly_yes”。它可以工作,但只有在单击一个按钮时才有效。如何在UserForm代码中定位它以在任何时候点击具有GroupName“GROnly”的按钮时触发?谢谢你看这个。

Private Sub GROnly_yes_Click()
'Prompt if the GROnly is true and it's inappropriate for the GSetting choice
  If GROnly_yes = True And GSetting_renewal = True _
  Then
    GROnly_yes = False
    GROnly_no = True
    MsgBox ("The GROnly can't be chosen with a Renewal." & vbNewLine & _
            "The GROnly button has been changed to 'NO'.")
    UserForm_Initialize
  End If
  'Other IF statements here.
End Sub

2 个答案:

答案 0 :(得分:1)

如果我理解得很清楚,GRonly就是包含(假设)radio_button_1radio_button_2的GroupBox。

代码未触发的原因是当他/她更改一个单选按钮的值时,不是单击GroupBox,而是更改该单个单选按钮的值。

您必须将代码添加到单选按钮对象的_Change事件中。这是一个例子:

Sub myFunctionalCode()
    'your code here
End Sub

Private Sub radio_button_1_Change()
    myFunctionalCode
End Sub
Private Sub radio_button_2_Change()
    myFunctionalCode
End Sub

答案 1 :(得分:0)

感谢您的回复。那会有用。

与此同时,我也提出了另一种选择。我删除了以下代码:

Private Sub GROnly_yes_Click()

我将其移动到用户点击提交表单的按钮:

Private Sub ContinueButton_Click()

在原始代码中,我必须将UserForm_Initialize更改为Exit Sub,以使代码在"提交"按钮。

再次感谢您的帮助。 菲尔