Excel中用VBA實現刪除空行和空列

來源:互聯網
上載者:User

在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檔案處於開啟狀態,開啟需要處理excel檔案,執行上述兩個宏即可。


用VBA刪除空行和空列
 
作者:未知 文章來源:未知 點擊數:3063 更新時間:2009-1-13 16:32:10 
      
    在Excel中刪除空行和空列的方法有很多,下面的方法是用VBA代碼來刪除工作表指定地區中的空行和空列:

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

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

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

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。