簡體   English   中英

Excel VBA中的組合框中的無法選擇的項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM