Excel表格筛选状态下如何仅删除表内行而非工作表整行
Excel筛选状态下仅删除表格范围内对应行的VBA实现
当Excel中的结构化表格(超级表)处于筛选状态时,直接执行删除操作默认会删除整张工作表的对应整行,会影响到表格外的其他列数据。如果仅需要删除表格范围内的对应行,可以使用以下VBA代码实现:
Dim TradeTable As Excel.ListObject ' 绑定目标工作表中的指定结构化表格,示例为Pre Trade工作表内的PreTradeTable表 Set TradeTable = Sheets("Pre Trade").ListObjects("PreTradeTable") ' 配置错误跳过,避免无匹配可见行时触发报错 On Error Resume Next With TradeTable ' 设置筛选条件:此处示例筛选"Ask Spread"列为空的行 .Range.AutoFilter Field:=.ListColumns("Ask Spread").Index, Criteria1:="" ' 直接删除筛选后的可见数据行,无需额外选中操作 .DataBodyRange.SpecialCells(xlCellTypeVisible).Delete ' 执行完成后清除筛选状态 .Range.AutoFilter End With On Error GoTo 0
注:可根据实际需求修改代码中绑定的工作表名、表格名、筛选列名和筛选条件
内容的提问来源于stack exchange,提问作者Motacular
相关产品推荐
相关产品推荐

