【问题标题】:Excel 2013 VBA : remove the active filter from the active column (not all active filters)Excel 2013 VBA:从活动列中删除活动过滤器(不是所有活动过滤器)
【发布时间】:2014-07-28 16:17:58
【问题描述】:

我可以根据当前选定的单元格(值)激活过滤器:

Application.CommandBars("Cell").FindControl(id:=12232, Recursive:=True).Execute

这很有效,我可以在同一个工作表中多次使用它。但是,我没有看到一种方法可以在不禁用所有当前过滤的列的情况下为当前选定的列(活动单元格)停用此过滤器。

假设我有三个活动过滤器(A、B 和 C 列)。我想从当前选定的单元格/列中禁用活动过滤器。如果我的活动单元格在 col A 中并且我运行宏,则只有 col A 中的过滤器将被设置为非活动,而来自列 B 和 C 的过滤器保持有效和活动。

PS:这是 Excel 2003 中的一行代码,Excel 2007 中是几行代码,但它不适用于 Excel 2013。

【问题讨论】:

    标签: excel filter excel-2013 vba


    【解决方案1】:

    这可能有效:

    Dim rowcol As Long
    Dim myRange As Range
    
    Set myRange = ActiveCell.CurrentRegion
    
    If Not Intersect(ActiveCell, myRange) Is Nothing Then
        rowcol = Intersect(ActiveCell, myRange).Column - myRange.Column + 1
        myRange.AutoFilter Field:=rowcol
    End If
    

    【讨论】:

    • 不,它可能不起作用,它正在起作用! :-) 非常感谢
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多