标签:VBA
这是一个案例:想要删除数据集中每列(列A到列J)都为空的行,也就是数据集中完全没有数据的行,如何使用VBA代码实现?
我们可以基于这样一种假设,即多行多列中的空格实际上是重复的,可以将它们看成是重复值,这样使用RemoveDuplicates方法,是否可以快速删除空行。下面我们试一试。
使用代码:
代码语言:javascript复制Sub DelBlankRows()
Columns("A:J").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Header:=xlYes
End Sub
或者代码:
代码语言:javascript复制Sub removeDups()
Dim x As Integer
Application.DisplayAlerts = 0
For x = 1 To 10
Columns(x).RemoveDuplicates Columns:=1, Header:=xlYes
Next x
End Sub
确实可以快速删除空行,但是还是会保留一个空行。也就是说,上面的代码只是部分起到了作用,还需要我们手工删除还剩下的一个空行。并且,如果数据集中有相同的数据行,除第1行相同的数据外,其余行会被删除。因此,使用RemoveDuplicates来删除空行不保险。
可以使用下面的代码:
代码语言:javascript复制Sub AllColumns()
Columns("A:J").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
End Sub
或者:
代码语言:javascript复制Sub EachColumnBlank()
Dim x As Integer
For x = 1 To 10
Columns(x).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
Next x
End Sub
有兴趣的朋友可以试试看。