打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
批量删除空行原来是这样运行的

     说起批量删除空行,是我这工作中遇到的算是比较早的难题,当时是没有通过VBA来操作,而是通过添加辅助列完成的,今天我来说下怎么通过VBA来批量删除空行,大家来看一段程序,我会给追条给大家解释一下,程序是怎么一步步完成批量删除空行的。

Sub deletemptyrows()

    Dim lastrow As Long  ‘定义最后一行的变量

    Dim r As Long    ‘定义循环变量

    Dim counter As Long  ’ 定义总共删除多少空行的变量

    Application.ScreenUpdating = False ’禁止屏幕更新,运行速度可以更快

    lastrow = ActiveSheet.UsedRange.Rows.Count _

        ActiveSheet.UsedRange.Rows(1).Row - 1

    For r = lastrow To 1 Step -1

   If Application.WorksheetFunction.CountA(Rows(r)) = 0 Then  

             Rows(r).Delete

            counter = counter 1

         End If

     Next r

     Application.ScreenUpdating = True  ’恢复屏幕更新

     MsgBox counter & ' empty rows were deleted.'

End Sub

重点我们讲解一下中间部分的内容,先来看这一句代码:

 lastrow = ActiveSheet.UsedRange.Rows.Count _

        ActiveSheet.UsedRange.Rows(1).Row - 1

ActiveSheet.UsedRange.Rows.Count 的意思就是已用数据区域的行数,如下图:



上面的例子ActiveSheet.UsedRange.Rows.Count返回的数值是14行(红色方框),就是表格里选择区域的行数,而ActiveSheet.UsedRange.Rows(1).Row返回的行号是3,就是已用区域的第一行的行号,减去1,就是上面空余的行数,所以lastrow=14 2,就是16,在看图上数据区域最后的行号是16行,就是我们计算的最后一行的行号,整个循环是倒着循环的也就是先计算16行,然后是15行,14行,。。。。。

Application.WorksheetFunction.CountA(Rows(r)) = 0 这一句里面的Row(r)就是选中某一整行,CountA(Rows(r)) = 0 意思就是选中的这一整行如果非空单元格个数为0,说明这一行啥数据都没有,就可以用Rows(r).Delete删除了, 删除一行counter加1,这样循环下来counter的值就是总共删除空余行数的总和,最后用msgbox呈现给用户,罗罗说说讲了这么多,感觉还是没讲怎么清楚,请大家包涵,如果有疑问,可以发信息给我,大家互相学习一下。

谢谢关注:






本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Excel中用VBA实现删除空行和空列
在Excel中如何删除表格中多余空行?
删除空行,空列
VBA查找空行2 判断.删除
Excel中用VBA将根据列内容分割成多个工作表
【软件】3个Excel?VBA示例(自动组合\筛选\保护)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服