将宏分配给组合框

时间:2014-10-21 05:59:55

标签: vba combobox

我一直在尝试为下拉菜单分配3个宏。

我使用Developer>创建了一个组合框。插入> ComboBox(不是ActiveX控件)有三个选项:“表1”,“表2”和“表3”。现在,我想为这三个选项中的每一个分配一个宏。如果单击“表1”,则macro1将运行;如果“表2”然后macro2等,

我可以通过右键单击>创建菜单格式化控制然后选择输入范围。

但是如何将下拉选项链接到宏?

1 个答案:

答案 0 :(得分:4)

您希望宏指定给组合框。

  1. 打开一个模块并编写一个名为eg的宏DropDown1_Change()
  2. 右键单击组合框>分配宏...在列表中选择您的宏>好。
  3. enter image description here enter image description here

    指定的宏应确定单击了哪个下拉选项,并根据该选项调用其他宏。它可能看起来像这样:

    Sub DropDown1_Change()
        Dim c As ControlFormat
        Set c = Sheet1.Shapes("Drop Down 1").ControlFormat ' or whatever yours is called
    
        'Choose which macro to run based on the selected value in the combobox
        Select Case c.Value
        Case 1: Macro1
        Case 2: Macro2
        Case 3: Macro3
        End Select
    End Sub
    
    Sub Macro1()
        MsgBox "Macro 1"
    End Sub
    Sub Macro2()
        MsgBox "Macro 2"
    End Sub
    Sub Macro3()
        MsgBox "Macro 3"
    End Sub