一个工作薄有几个sheet ,每个sheet的行数也不太相同,怎么用VBA实现批量删除指定sheet的E1:E20中间带0的行?注意最后一行的合计行需要保留。
sub 删除指定sheet指定内容行()
for i=1 to 20
if sheets("指定sheet名").cells(i,5)=0 then rows(i & ":" & i).delete
next
end sub
测试效果如上动态图
这个我试了下,为什么多点几次后,不管是不是空行都给删除了,而且我试了下把区域改为E4:E65的时候删除完了但是中间还是有0的行,我现在是这样的,但是这个没办法确定区域,会把我1-2行的合并单元格也给删除一行,所以我就想固定下区域,麻烦看下能不能帮我修改下
不好意思,我忘了改回来了,需要把我代码中的arr(i,1)和cells(i,1)中的1改成5
你图中的代码犯了最常见的错误,删除行是要从下往上删了,不然你上面删了一行下面的数据默认上移,就不对了。把 1 to x要改成x to 1 step -1
合并单元格的话,如评论中所言,需要加入if判断是否为合并单元格,然后再进行判断是否需要删除