我有一个包含多个工作表的工作簿。我想创建一个宏,用于清除当前选定单元格列的筛选器。当我按名称指定表时,我已经能够做到这一点(如下所示),但我想用对活动表的引用代替“Table1”。
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=ActiveCell.Column
字符串我也试过这个,没有成功。text
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'”,否则,如果活动单元格不在表中,则会发生该错误。
8zzbczxx2#
ActiveCell.ListObject
Criterial1
Field
ActiveCell.ListObject.Range.AutoFilter
字符串
With ActiveCell.ListObject.Range .AutoFilter Field:=.Column - ActiveCell.Column + 1 End With
型
2条答案
按热度按时间1cklez4t1#
要仅从选定列中清除筛选器,请基于活动单元格尝试以下操作:
字符串
这将标识正确的列号,即使该表不在工作表的A列中也是如此。此外,这将避免“运行时错误'91'”,否则,如果活动单元格不在表中,则会发生该错误。
8zzbczxx2#
ActiveCell.ListObject
是活动表。Criterial1
),则不需要Field
。字符串
型