VBA技术求助:修复筛选后删除可见行(保留表头)的宏
2026-5-22
我来帮你搞定这个VBA宏的问题!先看修正后的代码,再给你拆解哪里出了问题:
修正后的VBA宏代码
#
Sub DeleteVisibleRowsExceptHeader()
Dim ws As Worksheet
Set ws = ActiveSheet ' 建议替换成具体工作表,比如Set ws = ThisWorkbook.Worksheets("你的工作表名")
' 1. 删除筛选后的可见行(保留表头)
On Error Resume Next ' 防止没有可见数据行时宏崩溃
With ws.UsedRange
' 跳过表头行,选中剩余的所有可见数据行
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
End With
On Error GoTo 0 ' 恢复默认错误处理
' 2. 移除所有筛选
If ws.AutoFilterMode Then
ws.AutoFilterMode = False
End If