1

这是我的问题。

我有一个带有 10 个组合框的用户表单。代替 Select Case al 那些组合框是否有一种聪明的方法来更改多个组合框属性,例如背景色或字体颜色?

例如:

Sub ChangeMultipleComboBoxes()
Dim comboB as control

For Each comboB In Me.Controls
If TypeName(comboB) = "ComboBox" Then
comboB.BackColor = vbRed
End If
Next comboB

End Sub

问题是对于 comboB 我似乎找不到任何属性来改变它的背景色或任何东西。

有人能帮助我吗?

4

1 回答 1

0

正如 Zaider 所说,您的代码有效。ComboBox当它被声明为 a 时,您只是不会获得特定属性的 IntelliSense Control,即使您可以像在代码中那样使用这些属性。(请注意,所有控件共有的属性,例如,Caption都是可用的。)

要获得所有属性的 Intellisense,请在确定它是什么后ComboBox重新声明它:ControlComboBox

Private Sub UserForm_Click()
Dim ctl As MSForms.Control
Dim comboB As MSForms.ComboBox

    For Each ctl In Me.Controls
        If TypeName(ctl) = "ComboBox" Then
        're-declare it as a ComboBox
        Set comboB = ctl
            'Now you get IntelliSens
            comboB.BackColor = vbRed
        End If
    Next ctl
    End Sub
于 2013-05-17T18:42:38.480 回答