背景
我有一个名为UserForm
的{{1}},允许用户从两个MS SQL数据库表的内连接中选择列。我已为内部联接中的每列构建Select_Fields
,其中包含UserForm
个Frame
个。{/ p>
我可以连接到数据库并显示数据,但我试图在数据上方放置一个标题行是徒劳的。
问题
我正在尝试获取值CheckBox
的第一个Caption
的{{1}}并将其写入CheckBox
,然后移动True
下一个传球右边一个单元格。我的代码看起来像这样:
cur.Value
问题在于以下两行:
cur
此时我一直收到错误“运行时错误'424':对象需要”,我理解这意味着我的类型不匹配。 如何将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
的{{1}}写入单元格的cur.Value = ctl.Caption
cur = cur.Offset(0, 1)
,然后将该单元格指针移动到下一行?
答案 0 :(得分:1)
正如我们在评论中讨论的那样,确保在删除后cur
实际上仍指向正确的单元格,然后在vba中分配对象时记得使用Set
关键字:
Set cur = cur.Offset(0, 1)