2013-10-16 50 views
1

我在Excel用戶窗體中包含用戶組類型的組合框。 根據用戶的訪問級別,我想有一些Option \ item禁用或不可見。 我不想使用Removeitem,因爲我每次都要重新填充列表!禁用或隱藏組合框中的選項VBA Excel

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 

我只是希望它被禁用\在框列表變灰出來或不可見,但仍然!*

+0

秋季後衛的位置將是從Telerik的或其他供應商提供的第三方控制。他們可能有這樣的事情,但它會花費$$$。 – nicomp

回答

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

您所選擇的第二,第三或第四項目的那一刻,你會得到Please Choose Again

enter image description here

+0

謝謝你,這是一個很好的選擇! –