【问题标题】:iterate through If statment checking checkboxs in vba word遍历 If 语句检查 vba 单词中的复选框
【发布时间】:2013-10-09 01:11:05
【问题描述】:

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

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

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

类似

If "CheckBox" & i.Value Then

这可以完成还是可以用不同的方式完成?

【问题讨论】:

    标签: vba loops dynamic checkbox ms-word


    【解决方案1】:

    在下面的示例中,我有 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
    

    【讨论】:

    • 当我尝试运行该代码时,我收到错误“参数数量错误或属性分配无效”
    • 在 Do While 中尝试以下操作:MsgBox (Me("CheckBox" &amp; i).value) i = i + 1。如果这不起作用,请告诉我它出错的地方。
    • 仍然得到:“编译错误:参数数量错误或属性分配无效”
    猜你喜欢
    • 1970-01-01
    • 2016-07-02
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多