0

我正在使用 VBA 用户窗体。MassPrompt 用户表单有一组六个 GroupNames 和一些文本框。每个 GroupName 包含两个或多个单选按钮。
我希望在 GroupName“GROnly”中的任何元素发生更改时触发以下代码。如果用户基于另一个组中的选择在“GROnly”中做出了不适当的按钮选择,我想显示一条警告消息并再次显示 MassPrompt 用户表单。
现在,我已将代码分配给一个按钮“GROnly_yes”。它有效,但仅在单击该一个按钮时才有效。如何在用户窗体代码中定位它以在单击具有 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
4

2 回答 2

1

如果我理解得很好,GRonly是 GroupBox 包含(比方说)radio_button_1and radio_button_2

代码不触发的原因是,当他/她更改一个单选按钮的值时,不是单击 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
于 2015-09-30T22:37:08.607 回答
0

谢谢回复。那会奏效。

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

Private Sub GROnly_yes_Click()

我将其移至用户单击以提交表单的按钮:

Private Sub ContinueButton_Click()

在我的原始代码中,我必须更改UserForm_InitializeExit Sub使代码在“提交”按钮中工作。

再次感谢你的帮助。菲尔

于 2015-09-30T22:50:11.080 回答