我正在努力使用我创建的用户表单(称为Label_Select)。 我正在使用一些文本框和复选框初始化userform并在其中分配一些值。 然后我在设计模式下创建的userform上有一个OK按钮(如果有帮助的话,我可以在运行时创建这个按钮)。
我需要使用OK_Click代码中的文本框和复选框值,请参阅下文。 目前我得到了一个未定义的" Sub或Function"对于OK_Click子。
如何在userform初始化代码和userform的其他点击事件之间传递文本框和复选框值?
感谢您的回复
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
答案 0 :(得分:0)
尝试制作LotBox和SensorCheckBox公共变量
答案 1 :(得分:0)
您已在UserForm_Initialize中声明LotBox
和SensorCheckBox
,因此只要该子结束,它们都将超出范围。
将它们作为全局变量移动到模块的顶部。