1

我在 Excel 用户窗体中有一个由用户组类型组成的组合框。根据用户访问级别,我想让一些 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

我只是希望它被禁用\变灰或不可见,但仍在组合框列表中!*

4

1 回答 1

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

截屏

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

在此处输入图像描述

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

在此处输入图像描述

于 2013-10-16T13:33:16.017 回答