Excel 2003,用checkbox添加内容

我正在用VBA来提供一个范围的行,每行都有自己的checkbox。

到目前为止,代码如下所示:

Dim objColumnHeadings As Range, objDBsheet As Worksheet Dim lngRow As Long, objCell As Range Dim objCheckbox As Object Set objDBsheet = getDBsheet() Set objColumnHeadings = objDBsheet.Range("ColumnHeadings") objColumnHeadings.ClearContents lngRow = 1 For Each varExisting In objColumns objColumnHeadings.Cells(lngRow, 1).Value = varExisting Set objCell = objColumnHeadings.Cells(lngRow, 2) Set objCheckbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1" _ , Left:=412.8 _ , Top:=objCell.Top _ , Height:=10 _ , Width:=9.6) objCheckbox.Name = "cb" & lngRow objCheckbox.Appearance.Caption = "" objCheckbox.Appearance.BackColor = &H808080 objCheckbox.Appearance.BackStyle = 0 lngRow = lngRow + 1 If lngRow > 1 Then Exit For End If Next 

设置checkbox的名称工作,但设置其他属性不会导致运行时错误:'438',对象不支持此属性或方法。

当我查看新添加的checkbox的属性时,Name设置正确,但Caption,BackColor和BackStyle没有设置。

我如何设置这些编程?

使用MSForms.CheckBox ,并在其中设置Object ,这更容易。 使用下面的示例代码。

 Sub test() Dim objCheckbox As MSForms.CheckBox Set objCheckbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1" _ , Left:=10.8 _ , Top:=10 _ , Height:=25 _ , Width:=200).Object objCheckbox.Name = "Dummy_Test" objCheckbox.Caption = "Test" objCheckbox.BackColor = vbRed objCheckbox.BackStyle = 0 End Sub