我正在使用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
答案 0 :(得分:1)
如果我理解得很清楚,GRonly
就是包含(假设)radio_button_1
和radio_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
,以使代码在"提交"按钮。
再次感谢您的帮助。 菲尔