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