今天早上我问了一个类似的问题,我得到了一个很好的答案,但是后来我又往前推了一点,这就是我被困住的地方。
这是我的第一篇文章:Unselect an entire optionbutton group if another optionbutton outside the group is selected
但是现在,我想要这个:
如果OptionButton1.Value = True
或OptionButton2.Value = True
,则将OptionButton4
变灰为OptionButton11
(也给它起了一个组名:“类别”)。
但是,如果OptionButton3.Value = True
,则将OptionButton4
变为OptionButton11
(组类别)。
编辑:
我做了一些事情并且奏效了,但是一旦我运行用户表单并生成一个数字(出于用户表单目的),optionbutton就会变灰。这是我使用的代码:
Private Sub OptionButton1_Click()
OptionButton4.Enabled = False
OptionButton5.Enabled = False
OptionButton6.Enabled = False
OptionButton7.Enabled = False
OptionButton8.Enabled = False
OptionButton9.Enabled = False
OptionButton10.Enabled = False
OptionButton11.Enabled = False
End Sub
Private Sub OptionButton2_Click()
OptionButton4.Enabled = False
OptionButton5.Enabled = False
OptionButton6.Enabled = False
OptionButton7.Enabled = False
OptionButton8.Enabled = False
OptionButton9.Enabled = False
OptionButton10.Enabled = False
OptionButton11.Enabled = False
End Sub
编辑2:
我目前的解决方案是添加
Unload Me
UserForm1.Show
因此它重置了我的用户窗体并删除了灰色的选项按钮
答案 0 :(得分:0)
看起来您已经解决了自己的问题。另一个方法是创建一个验证子,每次选择一个选项时,它实际上都会检查所有内容。还有一种方法可以访问所有表单控件,例如Forms('myform')。controls('mycontrol')。我承认我很生锈,但是如果您进行迭代,则可以根据需要禁用enable并在加载时调用
答案 1 :(得分:0)
这是您要尝试的吗?
Option Explicit
Private Sub OptionButton1_Click()
EnableOptBtns False
End Sub
Private Sub OptionButton2_Click()
EnableOptBtns False
End Sub
Private Sub OptionButton3_Click()
EnableOptBtns True
End Sub
Private Sub EnableOptBtns(enable As Boolean)
Dim ctl As Control
Dim i As Long
For i = 4 To 11
Me.Controls("OptionButton" & i).Enabled = enable
Next i
End Sub