用户窗体中 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
假设所有 CheckBox
es 都有对应的 TextBox
es 具有相同的数字,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
我是 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
es 都有对应的 TextBox
es 具有相同的数字,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