我有一个组合框(在Excel中的用户窗体中),其数据源是带有标题的菜单项(工作表中的命名范围)。现在,我的解决方法是删除这些标题(例如主菜,甜点,饮料等),但我仍然想知道是否可以添加这些不可选择的标题,以便最终用户区分不同的菜单项。非常感谢任何帮助:)
e.g。
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)
答案 0 :(得分:1)
有点落后但我发现这非常简单并且效果很棒!
Sub CommandButton1_Click()
If ComboBox1.Value = "---------------" Then
Exit Sub
End If
End Sub
这是你的ComboBox在UserForm上的情况,就像我的一样。我有一个我不想选择的项目" ------------"作为列表项之间的分隔符。如果选中,则无法提交UserForm。
答案 1 :(得分:0)
没有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
事件。