Excel VBA用户表单复选框访问

时间:2017-03-23 18:34:55

标签: excel vba excel-vba checkbox userform

我以编程方式根据工作表范围内的行数创建用户表单(当前设置为固定数字以进行测试)。 然后,用户选中要检查的框,然后单击命令按钮。

与下面的代码一起运行的userform有一个命令按钮和一个手动添加的复选框。其他复选框以编程方式添加。 我无法弄清楚如何从有问题的复选框中获取值。我只是得到一个错误" testbox"没有定义。 我知道我错过了一些简单的事情......

有什么想法? 谢谢!

Option Explicit

Private Sub updateTablesBtn_Click()
    If CheckBox1.Value = True Then
        MsgBox "true"
    End If

    If testBox.Value = True Then
        MsgBox "true"
    End If
End Sub

Private Sub UserForm_Initialize()
    Dim chkBox As MSForms.CheckBox

    With formTableUpdate
        .Width = 150
        .Height = 200 '15 + 20 * (noOfVariants + 1) + 30
    End With

    Set chkBox = formTableUpdate.Controls.Add("Forms.CheckBox.1")
    With chkBox
        .Name = "testBox"
        .Caption = "test"
        .Left = 5
        .Top = 10
    End With

    With updateTablesBtn
        .Caption = "Update Tables"
        .Height = 25
        .Width = 76
        .Left = 38
        .Top = 30
    End With

End Sub

1 个答案:

答案 0 :(得分:1)

试试这个:

Dim chkBox As Control

For Each chkBox In formTableUpdate.Controls
    If chkBox.Name = "testBox" Then
        MsgBox chkBox.Caption & " has the value " & chkBox.Value
    End If
Next chkBox