如何在用户表单事件之间传递控制值?

我努力与我创build的用户窗体(称为Label_Select)。 我正在用一些文本框和checkbox初始化用户窗体,并在其中分配一些值。 然后,我在devise模式下创build的用户窗体上有一个OKbutton(如果有帮助,我可以在运行时创build此button)。

我需要使用OK_Click的代码中的文本框和checkbox的值,请参阅下文。 目前,我得到一个“子或function未定义”的OK_Click子。

如何传递用户窗体的初始化代码和其他单击事件之间的文本框和checkbox值?

谢谢您的反馈

Private Sub UserForm_Initialize() Dim LotBox(500) As MSForms.TextBox Dim SensorCheckBox(500) As MSForms.CheckBox For i = 1 To 4 For j = 1 To 4 k = i + (4 * j) Set LotBox(k - 4) = Label_Select.Controls.Add("Forms.TextBox.1") Set SensorCheckBox(k - 4) = Label_Select.Controls.Add("Forms.CheckBox.1") With LotBox(k - 4) .Top = 250 + i * 25 .Left = (j * 80) - 50 .Width = 40 .Height = 30 .Font.Size = 14 .Font.Name = "Calibri" .SpecialEffect = fmSpecialEffectSunken .Value = k .AutoSize = True End With With SensorCheckBox(k - 4) .Top = 246 + i * 25 .Left = (j * 80) - 8 .Height = 30 End With If LotBox(k - 4).Value = " " Then Label_Select.Controls.Remove LotBox(k - 4).Name Label_Select.Controls.Remove SensorCheckBox(k - 4).Name End If Next j Next i End Sub Private Sub OK_Click() Worksheets("Sheet1").Cells(1,1)=LotBox(1).Value Worksheets("Sheet1").Cells(2,1)=SensorCheckBox(1).Value End Sub 

尝试制作LotBox和SensorCheckBox公共variables

你已经在UserForm_Initialize中声明了LotBoxSensorCheckBox ,所以一旦这个子结束,它们都会超出范围。

将它们作为全局variables移动到模块的顶部。