在vba word中迭代if语句检查复选框

时间:2013-10-02 15:19:45

标签: vba loops dynamic checkbox ms-word

我有一个用于检查singel复选框的代码

Sub check_if_checked()
    If CheckBox1.Value Then
        MsgBox "checked"
    Else
        MsgBox "not checked"
    End If
End Sub

我想要做的是创建一个循环,在if语句中我可以用循环迭代变量替换复选框号。

这样的东西
If "CheckBox" & i.Value Then

可以这样做,也可能以不同的方式完成?

1 个答案:

答案 0 :(得分: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