Excel VBA中的combobox中的不可选项目

我有一个combobox(在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) 

没有AFAIK,你不能这样做。 以下是两种select。 把你的select:)

替代scheme1

取消select用户select相关标题的时刻。 例如

 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

使用两个combobox。 一个用于标题,另一个用于不同的菜单项目。 根据第一个combobox的select简单地填充第二个combobox。 例如

 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事件。

有点落后,但我发现这是非常简单的,太棒了!

 Sub CommandButton1_Click() If ComboBox1.Value = "---------------" Then Exit Sub End If End Sub 

在这种情况下,你的ComboBox就像我的UserForm一样。 我不想将选中的项作为“————”作为列表项之间的分隔符。 如果它被选中,则UserForm不能被提交。