2016-05-22 289 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)
相关问题