从下拉列表中选择值时,您可以调用宏吗?

时间:2016-12-05 14:30:37

标签: excel vba

我有一个带有下拉列表的excel电子表格(AH,AR,CH等)。取决于在下拉列表中选择的值,工作表更改的值是一系列vlookup。 其中一些返回空白行,我有一个宏,如果它们是空白的话会隐藏行。

有没有办法让我可以将宏调整到下拉列表,以便在点击时调用宏。

3 个答案:

答案 0 :(得分:1)

您需要访问该特定工作表模块,您可以通过右键单击工作表名称并选择查看代码来执行此操作。此时,您需要使用下面的Worksheet_Change子代码,这将在更改单元格A1的值时运行代码

Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
        Select Case Target.Value
            Case "DropdownValue1"
               'do something
            Case "DropdownValue2"
                'do something else
        End Select 
    End If
End Sub

答案 1 :(得分:0)

您可以将宏指定给Worksheet.Change事件,并根据值添加运行特定宏的条件。

例如:

Private Sub Worksheet_Change(ByVal Target as Range) 

If Not Intersect(Target, Thisworkbook.Sheets("WorksheetName").Range("AH")) Is Nothing 
    If Target.Value = "DropdownValue1" Then
        Macro1
    Elseif Target.Value = "DropdownValue2" Then
        Macro2
    Elseif Target.Value = "DropdownValue3" Then
        Macro3
    End if
End if

End Sub

答案 2 :(得分:0)

尝试修改以下代码:

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E1")) Is Nothing Then
        Select Case Range("E1")
            Case "Insert Blank rows": Macro1
            Case "Hide All Sheets": Macro2
            Case "Convert to Date": Macro3
        End Select
    End If
End Sub

参考:https://www.extendoffice.com/documents/excel/4421-excel-run-macro-from-drop-down-list.html