我在工作表中添加了一些Excel ActiveX控件选项按钮,并且需要将背景色更改为透明色。我使用了以下代码,但无法正常工作。
Sub removecolor()
Dim cb As OptionButton
For Each cb In ActiveSheet.OptionButton
cb.Interior.ColorIndex = xlNone
Next cb
End Sub
您能给我一个线索吗?
答案 0 :(得分:2)
要完成这项工作,您需要注意两点:
要访问工作表上的OptionButton控件,您需要迭代其OLEObjects
集合。
ActiveX控件没有Interior.ColorIndex
属性。但是,它确实具有BackColor
和BackStyle
属性。在这种情况下,您应该使用BackStyle
才能使控件透明。
这应该有效:
Sub RemoveColor()
For Each obj In ActiveSheet.OLEObjects
If TypeName(obj.Object) = "OptionButton" Then
obj.Object.BackStyle = fmBackStyleTransparent
End If
Next
End Sub
如果您不喜欢将类型名称作为字符串提供,则可以将条件替换为:
If TypeOf obj.Object Is MSForms.OptionButton Then ' etc.