[英]Unselectable items in a Combo Box in an Excel VBA
我有一個組合框(在Excel中為用戶形式),其數據源是帶有標題(工作表中的命名范圍)的菜單項集。 現在,我的解決方法是擦除這些標題(例如,主菜,甜點,飲料等),但我仍然想知道是否可以添加這些無法選擇的標題,以便最終用戶在不同的菜單項之間有所區別。 任何幫助將不勝感激:)
例如
Main Courses (**unselectable**)
Roast Beef with Mashed Potato (selectable)
Spicy Spareribs (selectable)
Beef Stroganoff (selectable)
Roast Chicken (selectable)
Desserts (**unselectable**)
Mango Float (selectable)
Brownies (selectable)
Lemon Squares (selectable)
有點落后,但我發現這非常簡單,效果很好!
Sub CommandButton1_Click()
If ComboBox1.Value = "---------------" Then
Exit Sub
End If
End Sub
如果您的ComboBox位於UserForm上,例如我的。 我不想將項目選擇為“ ------------”作為列表項目之間的分隔符。 如果選擇它,則不能提交用戶窗體。
沒有AFAIK,您不能這樣做。 以下是兩種選擇。 隨便挑:)
選擇1
在用戶選擇相關標題時取消選擇。 例如
Private Sub UserForm_Initialize()
ComboBox1.Style = fmStyleDropDownList
ComboBox1.AddItem "--- Main Courses ---"
ComboBox1.AddItem "Roast Beef with Mashed Potato"
ComboBox1.AddItem "Spicy Spareribs"
ComboBox1.AddItem "--- Desserts ---"
ComboBox1.AddItem "Mango Float"
ComboBox1.AddItem "Brownies"
End Sub
Private Sub ComboBox1_Click()
Select Case ComboBox1.Value
Case "--- Main Courses ---", "--- Desserts ---"
ComboBox1.Value = ""
End Select
End Sub
選擇2
使用兩個組合框。 一個用於標題,另一個用於不同的菜單項。 只需根據第一個組合框的選擇填充第二個組合框。 例如
Private Sub UserForm_Initialize()
ComboBox1.Style = fmStyleDropDownList
ComboBox2.Style = fmStyleDropDownList
ComboBox1.AddItem "--- Main Courses ---"
ComboBox1.AddItem "--- Desserts ---"
End Sub
Private Sub ComboBox1_Click()
ComboBox2.Clear
Select Case ComboBox1.Value
Case "--- Main Courses ---"
ComboBox2.AddItem "Roast Beef with Mashed Potato"
ComboBox2.AddItem "Spicy Spareribs"
Case "--- Desserts ---"
ComboBox2.AddItem "Mango Float"
ComboBox2.AddItem "Brownies"
End Select
End Sub
為了安全起見,請使用ComboBox1_Change
事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.