【问题标题】:Excel Table filtering using a drop down list使用下拉列表过滤 Excel 表格
【发布时间】:2021-11-16 23:14:25
【问题描述】:

我有一个电子表格,其中一个单元格中有一个下拉列表,我想使用列表中的值将自动过滤器应用于表格。

我已经尝试了一堆 VBA 潜艇,但似乎没有什么对我有用。如果有人用万无一失的方式解释如何实现这一点,我将不胜感激。

 Range("Orders[[#Headers],[Order Status]]").Select
ActiveSheet.ListObjects("Orders").Range.AutoFilter Field:=5, _
    Criteria1:=Range("B4").Value

在我试图用来实现这一目标的最后一个子之上。我将命名范围 Orders 应用于表。

【问题讨论】:

    标签: excel vba filtering


    【解决方案1】:

    您必须为 worksheet_change 事件添加代码,每当您更改 B4 的值时就会触发该事件。

    我给 B4 起了一个更易读的名字:Filtervalue 此外,过滤前不必选择表。

    'This goes into the worksheets module 
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target.Name Is Nothing Then
        If Target.Name.Name = "Filtervalue" Then
            'if Filtervalue has changed call filter routine  
            filterTable
        End If
    End If
    End Sub
    
    
    Private Sub filterTable()
    
    Dim FilterValue As String
    FilterValue = ThisWorkbook.Names("Filtervalue").RefersToRange
    
    Dim lo As ListObject
    Set lo = Me.ListObjects("tblKommentare")
    
    lo.Range.AutoFilter Field:=5, Criteria1:=FilterValue
    
    End Sub
    
    

    【讨论】:

    • 真是个好东西。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多