【问题标题】:Disable command button until specific option buttons are selected在选择特定选项按钮之前禁用命令按钮
【发布时间】:2019-05-24 14:58:59
【问题描述】:

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

我已经包含了每个选项按钮和命令按钮的名称: 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

【问题讨论】:

  • 我认为选项按钮不允许您选择多个选项?你是说复选框吗?
  • 嗨 RCL 感谢您的回复,我已将它们放入单独的 Frame 中,以便它们独立工作:)
  • 您已经将其作为私有范围 (Private Sub optHRMLI_Click()) 将其放在您拥有按钮的任何工作表中。
  • 您还想禁用提交按钮还是无法运行里面的代码?您可以改为弹出一条消息,说明用户需要选择某些选项(如果他们尚未按下按钮)。
  • 可以使用函数:MsgBox ("You have not selected enough options!", 0, "Error") 文档:docs.microsoft.com/en-us/office/vba/language/reference/…

标签: excel vba


【解决方案1】:

我认为这是您需要的代码。只需替换其中的名称,它就在用户表单中。

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

【讨论】:

  • 谢谢你,RCL!对于最后一个子 (sub count0topions()),这是一个模块吗?或者我把它放在我的用户表单上的某个地方?非常感谢和道歉我的无用哈哈
  • 它可以是一个模块或在用户表单中,但在本例中它在用户表单中。
猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 2018-01-27
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
相关资源
最近更新 更多