今日讲解VBA代码解决方案之二十八,EXCEL中,如何删除工作表中的空白行,这里要首先讲解的是Range对象的Delete方法,此方法用于删除对象。
语法:expression.Delete(Shift)
参数
a) expression是必需的,返回一个Range对象。
b) Shift是可选的,指定删除单元格时替补单元格的移位方式。可为以下 XlDeleteShiftDirection常量之一:xlShiftToLeft或xlShiftUp。如果省略该参数,则Microsoft Excel将根据区域的图形决定移位方式。
下面我们将就实际的应用来讲解如何应用DELETE方法,这个方法也是VBA中应用的非常广泛的,可以用于VALUE的删除,也可以用于格式的删除,还可以用于行的删除等等。要根据具体的条件来选择删除的对象,这就要根据实际问题来做具体判断,这里我要讲解的是\"如何删除空白行\"。这个问题也是在实际工作中应用的最为广泛的方法。下面我们看代码:
Sub MyDelBlankRow()
Dim rRow As Long
Dim LRow As Long
Dim i As Long
rRow = Sheets(\"Sheet9\").UsedRange.Row
LRow = rRow + Sheets(\"Sheet9\").UsedRange.Rows.Count - 1
For i = LRow To rRow Step -1
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next
End Sub
代码解析:MyDelBlankRow过程删除工作表中已使用的区域的所有空行。
a) 第5行代码获得工作表中已使用区域的首行行号,其中使用UsedRange属性返回工作表中已使用的区域。
b) 第6行代码获得工作表中已使用区域的最后一行行号。
c) 第7行到第11行代码从最大行数至最小行数循环判断指定行是否为空行,若为空行则删除该行。
d) 其中第8、9行代码使用工作表CountA函数判断当前行已使用单元格的数量,如果为零说明此行是空行则使用Delete删除。
e) UsedRange属性应用于Worksheet对象,返回指定工作表中已使用区域的Range对象,即返回工作表中已使用的单元格区域。
f) UsedRange.Row表示已用单元格第一行的序数; UsedRange.Rows.Count表示已用单元格第一行的行数;
g) WorksheetFunction.CountA 方法 用于计算非空单元格及参数列表中值的个数。
h) Application.WorksheetFunction.CountA(Rows(i)) 表示选中Rows(i)行的非空单元格的个数。
需要注意点是:此处一定要从最大行数至最小行数开始循环判断,因为如果工作表中存在两行及两行以上的相邻空行,从最小行数开始循环删除的话,当第一行空行被删除后,被删除行下面的一行会往上移位,而此时For...Next循环的计数器已经加1,所以会出现漏删除的现象。
运行MyDelBlankRow过程工作表区域所示:
代码窗口:
运行后的结果:
今日内容回向:
1 删除工作表行数的思路是什么?
2 UsedRange.Row 意义是什么?
3 Application.WorksheetFunction.CountA(Rows(i)) 是什么意义?
Hello.大家好,相信大家在工作中都或多或少的遇到过表格中存在空白行的情况,如果空白行只有一个或者两个,我们可以手动将其删除,如果空白行很多,手动删除就会非常的浪得时间,今天就跟大家分享三种批量删除空白行的办法,操作都非常的简单
一、排序法利用这种方法我们是通过排序将空白行放在表格的最后面,达到批量删除空白行的效果,首先我们选择任意一列,然后点击排序,选择升序,这样的话带有数据的行,就会放在表格的上面,而空白行就会在表格的下面,我们只需要将网格线去掉即可
二、定位法这种方法是先找到空白的单元格,然后选择空白的单元格将整行删除,首先我们选择一列,然后按Ctrl+g调出定位选择定位条件,然后选择空值,点击确定,这样的话我们就选择了这一列的空白的单元格,然后点击鼠标右键,选择删除,然后选择整行即可批量删除空白行
三、查找法这种方法和定位法相似,都是选择空白单元格,然后删除整行,首先选择一列,按Ctrl+F调出查找窗口,直接点击确定,然后按快捷键Ctrl+a选择所有空白的数据,点击鼠标右键选择删除,整行即可
以上三种方法都能批量的删除空白行,你更喜欢哪种方法呢,我想排序法的占大多数吧
我是excel从零到一,关注我持续分享更多excel技巧
今天要和大家分享的是,Excel如何一键删除数据区域的空白整行?比如下图中的第4行和第7行,不用一行一行的删除,直接……
(方方格子插件)
1.先看动图演示吧
2.开始之前先选中数据区域
3.然后选择方方格子插件按钮命令
4.接着单击批量删除操作
5.选择其中的删除空行和空列操作
6.弹出界面后直接单击确定按钮
7.即可完成删除整行的操作
如果经验帮到了你,请记得分享!