使用链接到宏的下拉列表

时间:2021-02-04 16:13:38

标签: excel vba

这是我第一次使用下拉列表。我想知道是否有办法为下拉列表中的每个项目分配一个宏。

enter image description here

例如,如果我选择 BZ1A,我希望它运行我称为 BZ1A 的子程序。

1 个答案:

答案 0 :(得分:1)

从下拉菜单中运行宏

  • 将第一个代码复制到包含下拉菜单的工作表的工作表模块中,例如Sheet1VBE Project Explorer 中括号中的名称)。
  • 调整常量部分中的值。
  • 将您的代码放入同一个模块中,例如Module1。否则,您将不得不修改代码。
  • 在本例中,下拉列表位于工作表 A1 的单元格 Sheet1 中,并包含列表(值​​)Sub1Sub2Sub3

工作表模块例如Sheet1

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Const CellAddress As String = "A1"
    Const ModuleName As String = "Module1"
    If Target.Cells.CountLarge = 1 Then
        If Not Intersect(Range(CellAddress), Target) Is Nothing Then
            Application.EnableEvents = False
            On Error GoTo clearError
            Application.Run ModuleName & "." & Target.Value
            Application.EnableEvents = True
        End If
    End If
    Exit Sub
clearError:
    MsgBox "Run-time error '" & Err.Number & "': " & Err.Description
    Resume Next
End Sub

标准模块Module1(示例)

Option Explicit

Sub Sub1()
    MsgBox "Running 'Sub1'"
End Sub
Sub Sub2()
    MsgBox "Running 'Sub2'"
End Sub
Sub Sub3()
    MsgBox "Running 'Sub3'"
End Sub