dynamic添加checkbox – 运行时错误424

您好我已经从TheEngineer复制/粘贴的代码 – 答案 – 我稍微修改了代码,所以它从数组而不是工作表收集数据。 我不断得到RuneTime Error 424 ,当我在Error 424阅读MS帮助它说我应该启用Microsoft DAO 3.5 Object Library我的Excel只有3.6 。 我猜更新版本? 但是我仍然有一个错误。 有人能帮我吗??

这是代码:

 Option Explicit Private Sub UserForm_Initialize() Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Call test ' Here i run array code (The array is filled with data) TestArr = UniqueProvisionArray LastColumn = UBound(TestArr) For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = TestArr(i).Value chkBox.Left = 5 chkBox.Top = 5 + ((i - 1) * 20) Next i End Sub 

由于行chkBox.Caption = TestArr(i).Value ,您正在获取该错误。 这是从数组中检索数据的不正确方法。

这是一个示例代码,使其工作。

 Private Sub UserForm_Initialize() Dim LastColumn As Long Dim i As Long Dim chkBox As MSForms.CheckBox Dim TestArr(1) TestArr(0) = 1 TestArr(1) = 2 LastColumn = UBound(TestArr) For i = 0 To LastColumn Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = TestArr(i) chkBox.Left = 5 chkBox.Top = 5 + ((i - 1) * 20) Next i End Sub 

还有一件事

你可能想改变chkBox.Top = 5 + ((i - 1) * 20)chkBox.Top = 5 + (i * 20)否则你的第一个checkbox将不可见;)