用户窗体中 CheckBox 和 TextBox 的条件语句 (VBA)

Conditional statements on CheckBox & TextBox in Userforms (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

假设所有 CheckBoxes 都有对应的 TextBoxes 具有相同的数字,CeckBox1 - TextBox1, CeckBox2 - TextBox2, . .. 然后:

 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