代码之家  ›  专栏  ›  技术社区  ›  nuke

VBA单选按钮:至少选择一个选项

  •  -1
  • nuke  · 技术社区  · 7 年前

    我有一个用户表单,有6个不同的类别,用户必须在其中选择0-4之间的选项。每个选项都可以通过单选按钮进行选择,单选按钮具有将写入父图纸的设定值。属于一个类别的每组单选按钮被分组(a-e)。

    有人能帮我实现一种机制,通过显示提示用户选择选项的消息,强制用户在每个类别中选择一个选项吗?

    工作流程如下:

    用户选择选项-->选定的选项写在工作表中--> Unload Me 在表单上

    理想情况下,最好将写入全部的宏“暂停”(不继续 卸载我 ). 相反,会显示消息,然后表单保持原样,这样用户就可以返回并继续,而不必重做整个过程。

    编辑:

    谢谢你的帮助。希望这能让事情变得更容易:

    我正在使用的代码是由我放在包含所有单选按钮的用户窗体上的“注册分数”按钮触发的。该按钮包含以下代码(其中 aa公司 =第一个单选按钮):

    Private Sub CommandButton1_Click()
    If aa.Value = False Then
    MsgBox ("Please select at least one option")
    Else
    Range("A" & Rows.Count).End(xlUp).Offset(1).Value = "Category A"
    Range("B" & Rows.Count).End(xlUp).Offset(1).Value = "0"
    End If
    Unload Me
    End sub
    

    我现在对每个单选按钮重复这个代码。问题是,例如,如果用户在每个类别中正确选择了一个单选按钮,但忘记了第一个单选按钮,则表单将重置,这意味着用户必须重新执行整个操作。我当然也可以添加(为了简单起见,我在这里只包含了单选按钮,但正确的代码当然包括 全部的 按钮):

    Private Sub CommandButton1_Click()
    If aa.Value = False and ab.Value = False And ac.Value = False Then
    MsgBox ("Please select at least one option")
    

    在这种情况下,用户必须为每个类别选择一个选项,但它也会重置整个表单,这意味着您必须重做所有内容。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Xabier    7 年前

    比如:

    If Radio1.value = False And Radio2.value = False And Radio3.value = False And Radio4.value = False then
      Msgbox "Please select something from the first four Radio Buttons"
    Exit Sub
    End if
    
        2
  •  1
  •   Harassed Dad    7 年前

    顺便提一句,在您提出的工作流中,如果卸载表单,您将如何将用户的选择写入表单?