我的用户表格上有4个框架。
第1,2和4帧有两个选项按钮。 第3帧有5个选项按钮。
我想要做的是,当选择命令按钮时,如果未选择框架中的选项按钮,则会显示一条消息。
我希望每个框架都有自定义消息。
我已经开始了,但真的很难掌握不同的框架...有人能指出我正确的方向吗? (还是非常初学者并且正在努力学习,所以如果所有的回复都让人沮丧,那就太棒了!!:D)
(我已从示例中提取此代码,因此它可能不是解决我问题的最佳方法...)
Dim ThisControl As Control
For Each ThisControl In UserForm2.Frame1.Controls
If TypeName(ThisControl) = "OptionButton" And _
ThisControl.Value = True Then
Unload Me
End If
Next ThisControl
MsgBox "Please Select an Option", vbCritical, "Select Opton"
答案 0 :(得分:3)
尝试以下方法:
If Me.[ControlName].Value = False And Me.[ControlName].Value = False Then
MsgBox "[Message]", vbExclamation, "[Message Box Name]"
Exit Sub
End If
对每个帧执行相同操作,将[ControlName]替换为控件名称,并将[Message]和[Message Box Name]替换为所需的自定义消息。 对于第3帧,您需要包含额外的3个“和”语句。
答案 1 :(得分:3)
可能不是最合适的解决方案,但它运作正常。循环遍历每个帧(您需要更新帧名称以匹配您的[名称,而不是标题!]),然后确保至少设置了一个选项,否则显示一条消息。根据需要进行调整
Private Sub CommandButton1_Click()
For Each ctrl In Frame1.Controls
If TypeOf ctrl Is msforms.OptionButton Then
If ctrl.Value = True Then
F1D = True
Exit For
End If
End If
Next ctrl
If F1D = False Then
MsgBox "No Option Selected In Frame 1"
End If
For Each ctrl In Frame2.Controls
If TypeOf ctrl Is msforms.OptionButton Then
If ctrl.Value = True Then
F2D = True
Exit For
End If
End If
Next ctrl
If F2D = False Then
MsgBox "No Option Selected In Frame 2"
End If
For Each ctrl In Frame3.Controls
If TypeOf ctrl Is msforms.OptionButton Then
If ctrl.Value = True Then
F3D = True
Exit For
End If
End If
Next ctrl
If F3D = False Then
MsgBox "No Option Selected In Frame 3"
End If
For Each ctrl In Frame4.Controls
If TypeOf ctrl Is msforms.OptionButton Then
If ctrl.Value = True Then
F4D = True
Exit For
End If
End If
Next ctrl
If F4D = False Then
MsgBox "No Option Selected In Frame 4"
End If
End Sub