我有一个代码可以检查单个复选框
Sub check_if_checked()
If CheckBox1.Value Then
MsgBox "checked"
Else
MsgBox "not checked"
End If
End Sub
我想要做的是创建一个循环,在 if 语句中我可以用循环迭代变量替换复选框编号。
就像是
If "CheckBox" & i.Value Then
这可以完成还是以不同的方式完成?
在下面的示例中,我有 4 个复选框,名称分别为CheckBox1
、CheckBox2
、CheckBox3
、CheckBox4
。
Sub check_if_checked()
Dim i As Integer
i = 1
Do While i <= 4
If (IsNull(Me("CheckBox" & i).value)) Then _
MsgBox ("CheckBox" & i & " is Null") Else _
MsgBox (Me("CheckBox" & i).value)
i = i + 1
Loop
End Sub
或者以下可能对您有用:
Sub check_if_checked()
Dim TempCntrl As Control
For Each TempCntrl In UserForm1.Controls
If TempCntrl.Name Like "CheckBox*" Then
MsgBox (TempCntrl.Name & ": " & TempCntrl.value)
End If
Next
End Sub