3、新建模块后,输入 Sub 删除空行() Dim a a = 1 Do While Cells(a, "a") <> "" If Cells(a, "D") = "" Then Rows(a).Select Selection.Delete Shift:=xlUp Else a = a + 1 End If Loop End Sub。
Sub DeleteEmptyRows() Dim LastRow As Long Dim r As Long LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count Application.ScreenUpdating = False For r = LastRow To 1 Step -1 If Application.WorksheetFunction.CountA(Rows(r)) = 0 _ Then Rows(r).Delete Next r Application.ScreenUpdating = True End Sub
Sub DeleteEmptyColumns() Dim LastColumn As Long Dim r As Long LastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count Application.ScreenUpdating = False For r = LastColumn To 1 Step -1 If Application.WorksheetFunction.CountA(Columns(r)) = 0 _ Then Columns(r).Delete Next r Application.ScreenUpdating = True End Sub
把下列代码复制过去,运行一下就行了,此代码是基于Sheet1的A列中的单元格为空时删除行的,而且只考虑20行,多的话,可以将20改大一些,除非你真的有几万行的数据,否则不要在整列中做循环,会影响系统运行的。 还想更自动的话,可以把此代码放在工作簿打开事件、关闭事件,或工作表事件中去。 Sub DelBlank() For i = 20 To 1 Step = -1 If Sheet1.Cells(i, 1) = "" Then Rows(i).Delete End If Next i End Sub