excel 从活动表中选定单元格的列中清除筛选

rqdpfwrv  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(93)

我有一个包含多个工作表的工作簿。我想创建一个宏,用于清除当前选定单元格列的筛选器。
当我按名称指定表时,我已经能够做到这一点(如下所示),但我想用对活动表的引用代替“Table1”。

ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=ActiveCell.Column

字符串
我也试过这个,没有成功。text

1cklez4t

1cklez4t1#

要仅从选定列中清除筛选器,请基于活动单元格尝试以下操作:

Sub ClearTableColumnFilter()

    Dim tbl As ListObject
    Set tbl = ActiveCell.ListObject

    If Not tbl Is Nothing Then
        tbl.Range.AutoFilter Field:=ActiveCell.Column - tbl.Range.Column + 1
    End If

End Sub

字符串
这将标识正确的列号,即使该表不在工作表的A列中也是如此。此外,这将避免“运行时错误'91'”,否则,如果活动单元格不在表中,则会发生该错误。

8zzbczxx

8zzbczxx2#

  • ActiveCell.ListObject是活动表。
  • 如果不使用其他参数(例如Criterial1),则不需要Field
  • 清除所有过滤器 *
ActiveCell.ListObject.Range.AutoFilter

字符串

  • 使用ActiveCell清除过滤器 *
With ActiveCell.ListObject.Range
        .AutoFilter Field:=.Column - ActiveCell.Column + 1
    End With

相关问题