如何在单元格中loggingcheckbox标题?

背景

我有一个名为Select_Fields的用户UserForm ,允许用户从两个MS SQL数据库表的内部连接中select列。 我已经构build了UserForm ,其中包含两个Frame其中包含内部CheckBox中每列的CheckBox es。

我能够连接到数据库并显示数据正常,但是我试图将标题行放在数据上方是徒劳的。

问题

我正在尝试获取具有值True的第一个CheckBoxCaption并将其写入到cur.Value ,然后将一个单元向右移动以进行下一个遍。 我有这样的代码:

 Private Sub btnOK_Click() Dim cmd As String Dim ctl As Control Set cur = ActiveSheet.Range("A1") ... For Each ctl In Select_Fields.Controls If TypeName(ctl) = "CheckBox" Then If ctl Then Select Case ctl.Name Case "chkFoo" cmd = cmd & "a.Foo" Case "chkBar" cmd = cmd & "b.Bar" ... End Select cur.Value = ctl.Caption cur = cur.Offset(0, 1) End If End If Next ctl ... End Sub 

问题在于这两行:

 cur.Value = ctl.Caption cur = cur.Offset(0, 1) 

在这一点上,我一直得到一个错误,说: “运行时错误”424“:所需的对象” ,我的理解是指我有一个types不匹配。 如何将CheckBoxCaption写入单元格的Value ,然后将该单元格指针移至下一行?

正如我们在评论中所讨论的那样,确保cur在删除发生后仍然指向正确的单元格,然后在分配vba中的对象时记得使用Set关键字:

 Set cur = cur.Offset(0, 1)