确认至less有一个checkbox被选中

我有search相同的问题,我看到了一些类似的职位,但我的用户表单仍然无法正常工作。 我是VBA和Userform的新手。

我总共有12个checkbox(12个月),我必须检查至less有一个checkbox被选中。

Dim atLeastOneChecked As Boolean atLeastOneChecked = False Dim ctrlNCK As Control For Each ctrlNCK In Controls If TypeName(ctrlNCK) = "chkMonth" Then If ctrlNCK.Value = True Then atLeastOneChecked = True End If Next ctrlNCK If Not atLeastOneChecked = True Then MsgBox "Month cannot be empty.", vbExclamation, "Input Data" Exit Sub End If 

这是未经testing的,但请尝试:

 If Left(ctrlNCK.Name,8) = "chkMonth" Then 

我永远不会期望types是“chkMonth”。 这假定每个相关的CheckBox名称都以“chkMonth”开头。

如果你只想要一个,只有一个月select,我会考虑在Frame使用OptionButtons