如何用VBA删除筛选后的所有隐藏数据,只保留筛选结果。代码如下执行有误,请大家帮我分析下错在哪怎么改

我现在需要一段代码能将筛选结果后被隐藏的所有数据删除,只保留筛选结果。代码如下:
Sub 删除筛选后的隐藏行()
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Rows(i).EntireRow.Hidden = True Then
Rows(i).Delete shift:=xlUp
End If
Next
End Sub
我把这段代码引用后出现一个奇怪的问题,筛选结果前面的数据确实被删除了,但筛选结果后面行的数据没有被删除而是保持被隐藏的状态,如何将这后面行的数据也能一并删除呢?谢谢大侠!!!

Sub 删除筛选后的隐藏行()
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Rows(i).EntireRow.Hidden = True Then
Rows(i).Delete shift:=xlUp
i=i-1 ’ 删除一行以后,总行数减少一行,行号计数器也要减1,^_^
End If
Next
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-03
For i = Range("A65536").End(xlUp).Row To 1 Step -1

这句不要这么写,直接for i=一个足够大的数to 1 step -1 就行了(超过原来数据区域)你可以直接设置成65536。
for i = 65536 to 1 step -1
相似回答
大家正在搜