Excel 使用VBA,如何在传递记录集字段的UserForm中创建复选框

Excel 使用VBA,如何在传递记录集字段的UserForm中创建复选框,excel,vba,dynamic,checkbox,userform,Excel,Vba,Dynamic,Checkbox,Userform,我有一个命令按钮,它是动态显示用户表单所必需的,如下所示,列标题作为复选框选项从记录集中获取 我初始化的代码如下所示 Private Sub UserForm_Initialize() Set xl1 = Excel.Application Dim xlXML As Object Dim adoRecordset As Object Dim rng As Range Dim recordCount1 As Long Dim Fieldcount

我有一个命令按钮,它是动态显示用户表单所必需的,如下所示,列标题作为复选框选项从记录集中获取

我初始化的代码如下所示

Private Sub UserForm_Initialize()
    Set xl1 = Excel.Application
    Dim xlXML As Object
    Dim adoRecordset As Object
    Dim rng As Range
    Dim recordCount1 As Long
    Dim Fieldcount1 As Long
    xl1.ThisWorkbook.Sheets(2).Activate
    Set rng = xl1.ThisWorkbook.Sheets(2).Range("A1:I15")
    Set adoRecordset = CreateObject("ADODB.Recordset")
    Set xlXML = CreateObject("MSXML2.DOMDocument")
    xlXML.LoadXML rng.Value(xlRangeValueMSPersistXML)
    adoRecordset.Open xlXML
    adoRecordset.MoveFirst
    Fieldcount1 = adoRecordset.Fields.Count
    Dim i As Long
    Dim chkBox As CheckBox
    For i = 1 To Fieldcount1
        Set chkBox = UserForm1.Controls.Add("Forms.Checkbox.1", "Checkbox" & i)
        chkBox.Caption = adoRecordset.Fields(i - 1)
        chkBox.Value = False
        chkBox.Top = (chkBox.Height + Spacing) * (i - 1)
    Next i

End Sub
我收到“运行时错误'13':类型不匹配”错误

你能帮我一下吗


我在脚本编写方面相对来说是个初学者

问题在于变量声明。你需要:

Dim chkBox As MSForms.CheckBox

哪一行代码导致运行时错误?@OpiesDad.Set chkBox=UserForm1.Controls.Add(“Forms.Checkbox.1”、“Checkbox”&i)时代码失败–Vikram 7分钟前