2016-05-22 288 views

回答

0

以下VBA代碼應該在Excel中做你需要的。在測試之前,一定要從電子表格的副本中工作,以防出現任何問題。

Sub RemoveEmptyRows() 

Dim Rw As Range 
With Application 

     .Calculation = xlCalculationManual 

     '.ScreenUpdating = False 

    Selection.SpecialCells(xlCellTypeBlanks).Select 
     For Each Rw In Selection.Rows 

      If WorksheetFunction.CountA(Rw.EntireRow) = 0 Then 

       Rw.EntireRow.Delete 
       count = count + 1 

      End If 

     Next Rw 

     .Calculation = xlCalculationAutomatic 

     '.ScreenUpdating = True 
End With 
End Sub 

注意,如果你希望被刪除了大量的行,取消對「.ScreenUpdate =假/真」線可以加快刪除過程。

算法:

刪除期間
  • 禁用公式計算。 (.Calculation = xlCalculationManual)
  • 選擇包含空白單元格在當前工作表的活動範圍。 (SpecialCells(xlCellTypeBlanks)。選擇)
  • 遍歷的每一行。 (一個)
  • 刪除整個行如果沒有行中單元格的包含數據。 (COUNTA函數)
  • 啓用式計算刷新值。 (.Calculation = xlCalculationAutomatic)
相關問題