禁用或隐藏组合框VB​​A Excel中的选项

时间:2013-10-16 11:56:28

标签: excel-vba vba excel

我在Excel Userform中有一个由用户组类型组成的组合框。 根据用户访问级别,我希望有一些Option \ item禁用或不可见。 我不想使用Removeitem,因为我每次都必须重新填充列表!

sub ComboBox_Enter() 

accessLvl = 1

ComboBox.AddItem "0-Show"
ComboBox.AddItem "1-Hide or disable"
ComboBox.AddItem "2-Show"
ComboBox.AddItem "3-Show"

For i = 0 To 3
      if accessLvl = 1 Then ComboBox.List(1).Hidden = True ' This not does work!! ''
Next

End sub

我只是希望它被禁用\灰色输出或不可见但仍在Combobox列表中!*

1 个答案:

答案 0 :(得分:0)

AFAIK,你不能这样做,但还有另一种选择。用户将无法选择某些项目(无论您指定哪个项目),即使它可见且未被禁用。

为此尝试此代码

Dim boolC As Boolean

'~~> Add Sample data
Private Sub UserForm_Initialize()
    ComboBox1.AddItem "Please Choose Again"

    For i = 1 To 10
        ComboBox1.AddItem i
    Next i
End Sub

'~~> This will not let the user select items in 2nd
'~~> 3rd and 4th items
Private Sub ComboBox1_Change()
    If Not boolC Then
        boolC = True
        Select Case ComboBox1.ListIndex
            Case 1, 2, 3: ComboBox1.ListIndex = 0
        End Select
        boolC = False
    End If
End Sub

<强>截图

假设您的表单在表单启动时看起来像这样。

enter image description here

当您选择第2,第3或第4项时,您将获得Please Choose Again

enter image description here