我有下面的代码应该为它旁边的listobject中的每一行添加一个复选框。我想开发一个批准工具,它从数据库加载数据并将其加载到listobject中。之后,我可以通过复选框批准或拒登数据并保存更改。由于listobject会有更改长度,所以需要通过代码添加和删除复选框。什么类型的电子表格复选框在vba中?
所以这里的代码:
Sub Approval()
Dim i As Integer
Dim tbl As ListObject
Dim CBcollection As Collection
Dim CB As msforms.CheckBox ' THIS IS WRONG
Dim sht As Worksheet
Dim L As Double, T As Double, H As Double, W As Double
Dim rng As Range
Set sht = Tabelle1
Set tbl = sht.ListObjects("ApprovalTBL")
Set rng = tbl.Range(2, 1).Offset(0, -1)
W = 10
H = 10
L = rng.Left + rng.Width/2 - W/2
T = rng.Top + rng.Height/2 - H/2
For i = 1 To tbl.ListRows.Count
Set CB = sht.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, DisplayAsIcon:=False, Left:=L, Top:=T, Width:=W, Height:=H)
'the line before will give me an error 13 type missmatch
CBcollection.Add (CB)
Set rng = rng.Offset(-1, 0)
T = rng.Top + rng.Height/2 - H/2
Next i
End Sub
现在的问题:
什么类型在一个正常的电子表格复选框?
我总是使用“Option Explicit”,我总是将我的变量调暗到正确的类型,我不想使用变体类型。
窗体控件或ActiveX控件? –