将宏分配给组合框

Arj*_*ngh 2 vba combobox

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

我使用开发人员 > 插入 > 组合框(不是 ActiveX 控件)创建了一个组合框,其中包含三个选项:“表 1”、“表 2”和“表 3”。现在,我想为这三个选项中的每一个分配一个宏。如果单击“表 1”,则macro1运行;如果“表 2”那么macro2,等等。

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

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

Jea*_*ett 5

您想为组合框分配一个宏。

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

在此处输入图片说明 在此处输入图片说明

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

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
Run Code Online (Sandbox Code Playgroud)