Excel 禁用命令按钮,直到选择特定选项按钮

Excel 禁用命令按钮,直到选择特定选项按钮,excel,vba,Excel,Vba,我有一个带有4个选项按钮的用户表单“HRMForm”。用户必须至少选择其中两个选项按钮才能继续。在满足此要求之前,我希望禁用Submit命令按钮 我已包括每个选项按钮和命令按钮的名称: 1.optHRMCM 2.optHRMLI 3.optHRMPM 4.optHRMBE 5.命令按钮-btnHRMSubmit 我现在的密码。但是,在用户选择正确的选项并启用“提交”按钮后,如果他们单击关闭这些选项按钮,“提交”按钮将保持启用状态。我如何编写代码使其恢复为禁用状态 Private Sub optH

我有一个带有4个选项按钮的用户表单“HRMForm”。用户必须至少选择其中两个选项按钮才能继续。在满足此要求之前,我希望禁用Submit命令按钮

我已包括每个选项按钮和命令按钮的名称: 1.optHRMCM 2.optHRMLI 3.optHRMPM 4.optHRMBE 5.命令按钮-btnHRMSubmit

我现在的密码。但是,在用户选择正确的选项并启用“提交”按钮后,如果他们单击关闭这些选项按钮,“提交”按钮将保持启用状态。我如何编写代码使其恢复为禁用状态

Private Sub optHRMLI_Click()

If Me.optHRMCM And Me.optHRMLI Then
   btnHRMSubmit.Enabled = True
End If

If Me.optHRMCM And Me.optHRMPM Then
   btnHRMSubmit.Enabled = True
End If

If Me.optHRMCM And Me.optHRMBE Then
   btnHRMSubmit.Enabled = True
End If

If Me.optHRMLI And Me.optHRMPM Then
   btnHRMSubmit.Enabled = True
End If

If Me.optHRMLI And Me.optHRMBE Then
   btnHRMSubmit.Enabled = True
End If

If Me.optHRMPM And Me.optHRMBE Then
   btnHRMSubmit.Enabled = True
End If

End Sub

我想这就是你需要的代码。只需替换其中的名称,这就在userform中

Private Sub OptionButton1_Click()
  countOptions
End Sub

Private Sub OptionButton2_Click()
countOptions
End Sub

Private Sub OptionButton3_Click()
countOptions
End Sub

Private Sub OptionButton4_Click()
countOptions
End Sub

Private Sub UserForm_Initialize()

  CommandButton1.Enabled = False

End Sub

Sub countOptions()
 Dim cntrl As Control
 Dim Count As Integer
 Count = 0
 For Each cntrl In UserForm1.Controls

    If TypeOf cntrl Is msforms.OptionButton Then

       If cntrl = True Then
         Count = Count + 1
       End If

    End If
 Next

 If Count >= 2 Then
  CommandButton1.Enabled = True
 End If

End Sub

我认为选项按钮不允许您选择多个选项?你是说复选框吗?嗨,谢谢你的回复,我把它们放在单独的框架中,这样它们就可以独立工作:)你已经把它作为一个私有范围(
私有子optHRMLI_Click()
)把它放在按钮所在的任何一张表中。你想禁用提交按钮还是不能在其中运行代码?相反,您可能会弹出一条消息,告诉用户如果尚未选择某些选项,则需要选择并按下按钮。您可以使用以下功能:
MsgBox(“您选择的选项不够!”,0,“错误”)
文档:谢谢您,RCL!对于最后一个子模块(sub count0topions()),这是一个模块吗?或者我应该把它放在我的用户表单上的某个地方?非常感谢并为我的无用表示歉意hahait可以是一个模块,也可以在userform中,但在本例中它在userform中。