Excel 选择特定选项按钮时灰显选项按钮

Excel 选择特定选项按钮时灰显选项按钮,excel,vba,Excel,Vba,今天早上我问了一个类似的问题,我得到了一个很好的答案,但后来我又进一步问了一点,这就是我被困的地方 这是我的第一篇帖子: 但现在,我想说: 如果OptionButton1.Value=True或OptionButton2.Value=True则将OptionButton4灰显至OptionButton11(同时给它一个组名:“类别”) 但是,如果OptionButton3.Value=True,则它会将OptionButton4取消锁定到OptionButton11(组类别) 编辑: 我做了一些

今天早上我问了一个类似的问题,我得到了一个很好的答案,但后来我又进一步问了一点,这就是我被困的地方

这是我的第一篇帖子:

但现在,我想说:

如果
OptionButton1.Value=True
OptionButton2.Value=True
则将
OptionButton4
灰显至
OptionButton11
(同时给它一个组名:“类别”)

但是,如果
OptionButton3.Value=True
,则它会将
OptionButton4
取消锁定到
OptionButton11
(组类别)

编辑:

我做了一些事情,但一旦我运行我的userform并生成一个数字(userformpurpose),optionbuttons就会变灰。以下是我使用的代码:

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

因此,它重置了我的用户表单,并删除了灰色的选项按钮,看起来你解决了自己的问题。另一种方法是创建一个验证子项,每次选择一个选项时,该验证子项都会检查所有内容。还有一种方法可以访问所有的表单控件,比如表单('myform')。控件('mycontrol')我承认我很生疏,但是如果你反复访问,你可以根据需要禁用enable并在加载时调用它

  • 处理启用/禁用,而不是卸载和重新加载表单
  • 创建一个公共过程来处理启用/禁用,这样就不必重复代码
  • 您可以循环使用所有控件,这不仅可以减少代码行数,而且更易于维护
  • 这就是你想要的吗

    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
    

    谢谢您的回答!是的,这就是我想要的,你的方式也行。唯一的问题是,当我在UserForm中生成我的号码时,UserForm应该重置,以便我可以再次使用UserForm,但是optionbutton保持灰色!这就是为什么我使用
    卸载我
    。而且你的方法不会在第一次使用后将其解开。。。。也许它不起作用,因为我没有使用你的
    选项Explicit
    ?并且只有在那之后的代码?
    用户窗体将被重置
    您可以使用
    EnableOptBtns True
    重置选项按钮。您可以在COMMNAD按钮中或从任何您想要的位置重置它。无需卸载和重新加载