VBA 单选按钮:Select 至少一个选项
VBA Radio buttons: Select at least one option
我有一个包含 6 个不同类别的用户表单,用户必须 select 在 0-4 之间选择一个选项。每个选项 select 都可以使用带有设置值的单选按钮,该设置值将写入父级 sheet。属于一个类别的每组单选按钮被分组 (a-e)。
有人可以帮助我实现一种机制,通过显示提示用户 select 一个选项的消息,强制用户在每个类别的一个选项中 select 吗?
工作流程是这样的:
用户selects选项-->选中的选项写在sheet-->Unload Me
表格上
理想情况下,如果要写入所有的宏是 "paused"(不要继续 Unload Me
),那将是最好的。而是显示消息,然后表单保持原样,以便用户可以返回并继续,而不必重做整个过程。
编辑:
感谢大家的帮助。希望这会让事情变得更容易:
我正在使用的代码是由我放置在包含所有单选按钮的用户窗体上的 "Register score" 按钮触发的。该按钮包含以下代码(其中 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
我现在为每个单选按钮重复此代码。问题是,如果用户 select 在每个类别中正确设置了单选按钮但忘记了第一个,则表单将重置,这意味着用户必须重新执行整个操作。我当然也可以添加(为了简单起见,我在这里只包括了单选按钮,但正确的代码当然包括 all 按钮):
Private Sub CommandButton1_Click()
If aa.Value = False and ab.Value = False And ac.Value = False Then
MsgBox ("Please select at least one option")
在这种情况下,用户必须 select 每个类别一个选项,但它也会重置整个表单,这意味着您必须重做所有内容。
为确保选中一个按钮,只需在 OK/Close 按钮的事件中添加一段代码,检查是否至少选择了一个按钮 - 如果没有显示消息,然后退出子程序以中止例程,或者将检查实现为 returns 布尔值的函数,并且仅在 returns 为真时才卸载。
顺便说一句,在您提议的工作流程中,如果您卸载表单,您打算如何将用户的选择写入 sheet?
怎么样:
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
我有一个包含 6 个不同类别的用户表单,用户必须 select 在 0-4 之间选择一个选项。每个选项 select 都可以使用带有设置值的单选按钮,该设置值将写入父级 sheet。属于一个类别的每组单选按钮被分组 (a-e)。
有人可以帮助我实现一种机制,通过显示提示用户 select 一个选项的消息,强制用户在每个类别的一个选项中 select 吗?
工作流程是这样的:
用户selects选项-->选中的选项写在sheet-->Unload Me
表格上
理想情况下,如果要写入所有的宏是 "paused"(不要继续 Unload Me
),那将是最好的。而是显示消息,然后表单保持原样,以便用户可以返回并继续,而不必重做整个过程。
编辑:
感谢大家的帮助。希望这会让事情变得更容易:
我正在使用的代码是由我放置在包含所有单选按钮的用户窗体上的 "Register score" 按钮触发的。该按钮包含以下代码(其中 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
我现在为每个单选按钮重复此代码。问题是,如果用户 select 在每个类别中正确设置了单选按钮但忘记了第一个,则表单将重置,这意味着用户必须重新执行整个操作。我当然也可以添加(为了简单起见,我在这里只包括了单选按钮,但正确的代码当然包括 all 按钮):
Private Sub CommandButton1_Click()
If aa.Value = False and ab.Value = False And ac.Value = False Then
MsgBox ("Please select at least one option")
在这种情况下,用户必须 select 每个类别一个选项,但它也会重置整个表单,这意味着您必须重做所有内容。
为确保选中一个按钮,只需在 OK/Close 按钮的事件中添加一段代码,检查是否至少选择了一个按钮 - 如果没有显示消息,然后退出子程序以中止例程,或者将检查实现为 returns 布尔值的函数,并且仅在 returns 为真时才卸载。
顺便说一句,在您提议的工作流程中,如果您卸载表单,您打算如何将用户的选择写入 sheet?
怎么样:
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