【问题标题】:Using VBA, How to Create CheckBox in a UserForm passing the RecordSet Fields使用 VBA,如何在传递 RecordSet 字段的用户窗体中创建复选框
【发布时间】:2015-05-07 06:04:18
【问题描述】:

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

我的初始化代码如下

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':类型不匹配”错误

你能帮我解决这个问题吗?

我是脚本的初学者

【问题讨论】:

  • 哪行代码给你运行时错误?
  • @OpiesDad.代码在 Set chkBox = UserForm1.Controls.Add("Forms.Checkbox.1", "Checkbox" & i) 处失败 – Vikram 7 分钟前

标签: excel vba dynamic checkbox userform


【解决方案1】:

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

Dim chkBox As MSForms.CheckBox

【讨论】:

    猜你喜欢
    • 2013-02-04
    • 2021-09-11
    • 2012-09-04
    • 2017-04-03
    • 2015-01-17
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多