VBA从userform获取复选框值

时间:2017-07-21 09:06:23

标签: excel vba checkbox

我无法从用户表单的复选框中获取值。我遇到的问题是userform根据工作表中的值创建可变数量的复选框。代码:

Private Sub UserForm_Initialize()

Dim LastRow As Long
Dim i As Long
Dim Teller As Long
Dim chkBox As MSForms.CheckBox

Teller = 1
LastRow = Worksheets("Sheet").Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To LastRow
    If Worksheets("Sheet").Cells(i, 1).Value = Worksheets("Sheet").Range("S1").Value Then
        Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & Teller)
        chkBox.Caption = Worksheets("Sheet").Cells(i, 9).Value
        chkBox.Left = 5
        chkBox.Top = 25 + ((Teller - 1) * 20)
        Teller = Teller + 1
    End If
Next i    
End Sub

因此,这会创建一些名为CheckBox_1,CheckBox_2等的复选框。 问题是,当我尝试在模块中获取CheckBox_1的值时,尚未创建CheckBox_1,因此我无法使用它。

Dim x as String
With UserForm4
     .Show
     x = .CheckBox_1
     MsgBox (x)
     End
End With

1 个答案:

答案 0 :(得分:1)

你需要循环。控制文本框不是表单上的属性。