Excel中用VBA實現(xiàn)刪除空行和空列

2016-06-25 08:02:05 來源:三聯(lián)用戶投稿作者:素來 人氣: 次閱讀 296 條評論

在exce中刪除空行和空列的方法有很多,相對而言刪除空行較為簡單,只需進行篩選,將空白行篩選出來,刪除即可,但要刪除空列比較困難。因為你不能按列進行篩選刪除。Excel中沒有這個功能。當然你可以用另外一種方法,就是按列進...

在exce中刪除空行和空列的方法有很多,相對而言刪除空行較為簡單,只需進行篩選,將空白行篩選出來,刪除即可,但要刪除空列比較困難。因為你不能按列進行篩選刪除。excel中沒有這

個功能。當然你可以用另外一種方法,就是按列進行排序將空白列排序在一起,然后刪除,但這種方法面臨著列的順序被打亂的問題,吃力不討好。本文將利用Excel中強大VBA功能來完成刪

除空白行和列的方法。

步驟一、打開excel,按ALT+F11組合建,調出VBA程序窗口

步驟二、在插入菜單中,選擇模塊,插入一個模塊

步驟三、在新建模塊中的代碼窗口將以下代碼復制進去

‘刪除空行

Sub DeleteEmptyRows()
Dim LastRow As Long, r As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
LastRow = LastRow + ActiveSheet.UsedRange.Row -1

For r = LastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
’刪除空列

Sub DeleteEmptyColumns()
Dim LastColumn As Long, c As Long
LastColumn = ActiveSheet.UsedRange.Columns.Count
LastColumn = LastColumn + ActiveSheet.UsedRange.Column
For c = LastColumn To 1 Step -1
If WorksheetFunction.CountA(Columns(c)) = 0 Then Columns(c).Delete
Next c
End Sub

完成后關閉VBA窗口,選擇保存,并保存Excel文件。

步驟四、保持步驟三中的excel文件處于打開狀態(tài),打開需要處理excel文件,執(zhí)行上述兩個宏即可。


用VBA刪除空行和空列

作者:未知 文章來源:未知 點擊數(shù):3063 更新時間:2009-1-13 16:32:10

在Excel中刪除空行和空列的方法有很多,下面的方法是用VBA代碼來刪除工作表指定區(qū)域中的空行和空列:

Option Explicit

Sub Delete_Empty_Rows()
Dim rnArea As Range
Dim lnLastRow As Long, i As Long, j As Long

Application.ScreenUpdating = False
lnLastRow = Selection.Rows.Count
Set rnArea = Selection

j = 0

For i = lnLastRow To 1 Step -1
If Application.CountA(rnArea.Rows(i)) = 0 Then
rnArea.Rows(i).Delete
j = j + 1
End If
Next i

rnArea.Resize(lnLastRow - j).Select

Application.ScreenUpdating = True
End Sub

Sub Delete_Empty_Columns()
Dim lnLastColumn As Long, i As Long, j As Long
Dim rnArea As Range

Application.ScreenUpdating = False
lnLastColumn = Selection.Columns.Count
Set rnArea = Selection

j = 0

For i = lnLastColumn To 1 Step -1
If Application.CountA(rnArea.Columns(i)) = 0 Then
rnArea.Columns(i).Delete
j = j + 1
End If
Next i

rnArea.Resize(, lnLastColumn - j).Select

Application.ScreenUpdating = False
End Sub

在運行代碼前,先選擇需要刪除空行和空列的區(qū)域。如果要刪除空行,則運行Delete_Empty_Rows(),指定區(qū)域中的空行將被刪除。注意所謂空行是在指定區(qū)域中的,如果在指定區(qū)域內是

空行,而在指定區(qū)域外不是空行,那么這些空行還是將會被刪除。刪除空列則運行Delete_Empty_Columns()。