我试图从我的模块中的userform获取Teller
的值。这是我的用户表单代码:
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
我的模块代码:
Dim p As Long
Dim x As String
With UserForm
.Show
For p = 1 To .Teller
x= .Controls("CheckBox_" & p).Caption
MsgBox (x)
Next p
End
End With
UserForm.Teller
不会给我Teller
的价值。我怎么得到这个?
答案 0 :(得分:2)
Teller不是userform的对象或方法,它是您在userform_initialize模块中定义的变量。
您可以做的是将变量声明为模块中的公共变量,然后在您的用户表单中调用它。您可以通过将模块中子例程上方的变量声明为公共,如下所示。
Public Teller As Long
然后你就可以使用
了For p = 1 to teller
在你的模块中
如果要在每次运行时重置用户窗体,则需要在代码末尾手动将变量重置为0 /
由于