我能够根据当前选择的单元格(值)激活过滤器:
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一起运行。
答案 0 :(得分:0)
这可能有效:
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