Excel VBA宏开发:清除活动单元格所在列的筛选(适配活动表格)
清除活动单元格所在列的表格筛选(VBA宏)
修正后的代码
直接通过活动单元格引用所属表格,无需硬编码表格名称,修改后的代码如下:
' 清除当前选中单元格所在列的筛选 ActiveCell.ListObject.Range.AutoFilter Field:=ActiveCell.Column - ActiveCell.ListObject.Range.Column + 1
代码说明
ActiveCell.ListObject:自动获取当前选中单元格所属的表格对象,适配工作簿内任意表格,不用指定固定名称ActiveCell.Column - ActiveCell.ListObject.Range.Column + 1:由于AutoFilter的Field参数需要表格内的相对列序号(而非工作表的绝对列号),通过此计算可得到单元格在表格中的正确列位置,避免表格非从A列开始时出错
原代码问题分析
原代码ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=ActiveCell.Column存在两个问题:
- 硬编码表格名称
Table1,无法适配其他表格 Field参数使用了工作表绝对列号,不符合表格筛选字段的参数要求
内容的提问来源于stack exchange,提问作者QuadrilateralMom
相关产品推荐
相关产品推荐

