【发布时间】:2016-11-19 04:15:49
【问题描述】:
我正在使用 VBA 用行来扩展一个范围,每一行都有自己的复选框。
到目前为止,代码如下所示:
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
设置复选框的名称有效,但设置其他属性无效,并导致运行时错误:'438',Object 不支持此属性或方法。
当我查看新添加的复选框的属性时,名称设置正确,但未设置标题、背景颜色和背景样式。
如何以编程方式设置这些?
【问题讨论】: