0

我有一个代码可以检查单个复选框

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

1 回答 1

0

在下面的示例中,我有 4 个复选框,名称分别为CheckBox1CheckBox2CheckBox3CheckBox4

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
于 2013-10-02T15:33:46.723 回答