用户表单中的CheckBox和TextBox的条件语句(VBA)

我是VBA中编写UserForms的新手,需要一定的帮助,在一定数量的CheckBox和TextBox对上编写条件语句。 显然,一个循环将涉及,但我似乎不能合并它。 这是我尝试过的方法之一,也是失败的方法之一:

For i = 1 To 12 If CheckBox(i).Value = True And TextBox(i) = "" Or CheckBox(i).Value = False And TextBox(i).Value <> "" Then MsgBox ("Warning") End If Next i 

感谢您的任何帮助!!!!!! 问候

UserForm中不是CheckBox或TextBox集合。 这就是为什么CheckBox(index)TextBox(index)将无法正常工作。

但是有一个Controls集合。

  For i = 1 To 12 'If CheckBox(i).Value = True And TextBox(i) = "" Or CheckBox(i).Value = False And TextBox(i).Value <> "" Then If Me.Controls("CheckBox" & i).Value = True And Me.Controls("TextBox" & i).Value = "" _ Or Me.Controls("CheckBox" & i).Value = False And Me.Controls("TextBox" & i).Value <> "" Then MsgBox ("Warning") End If Next 

假设所有CheckBox都有相同的数字相应的TextBoxCeckBox1TextBox1CeckBox2TextBox2 ,…然后:

  Dim oControl As Control Dim sTextBoxName As String For Each oControl In Me.Controls If LCase(TypeName(oControl)) = "checkbox" Then sTextBoxName = Replace(oControl.Name, "checkbox", "textbox", , , vbTextCompare) If oControl.Value = (Me.Controls(sTextBoxName).Value = "") Then MsgBox "Warning " & Me.Controls(sTextBoxName).Name & ", " & oControl.Name End If End If Next