学习Excel技术,关注微信公众号:
excelperfect
在工作表中有很多数据块,每个数据块之间使用空行分隔,但空行行数不同,有的有2个空行,有的有3个空行,如下图1所示。
图1
现在,想要每个数据块之间都使用一个空行来分隔。可以使用下面的VBA代码来完成:
代码语言:javascript复制Sub SeparateByBlankRow()
Dim iRow As Long
Dim LastRow As Long
'获取工作表最后一行
LastRow = Cells(Rows.Count,1).End(xlUp).Row
'从最后一行开始数据遍历
For iRow = LastRow To 2 Step -1
'判断条件是存在连续的空行则删除一个空行
If (Cells(iRow, 1).Value = ""_
And Cells(iRow 1, 1).Value<> "" _
And Cells(iRow - 1, 1).Value ="") Then
Cells(iRow, 1).EntireRow.Delete
End If
Next iRow
End Sub
运行上述代码后的结果如下图2所示。
图2
程序代码的图片版如下:
小结
1. 找到工作表中存在数据的最后一行,从最后一行往前遍历是关键。这是编写类似程序例如删除行时首先要考虑的。
2. 删除其中的空行但仅保留一个空行,要合理设置判断连续空行的条件。
3. 本示例虽然简单,但在整理数据时经常会用到,特别是整理大量数据时,运用少量的代码即可自动完成工作。