2016-01-13 23 views
0

您好我工作的VBA代碼,通過我的所有數據,只刪除整個行,如果它是空白的。因此一旦空行被刪除,行就會上移。只有當行是空白時刪除整個行,否則如果任何行包含任何數據仍然

但是,如果我有一行包含一些數據。我希望這一行保持不變。

我在那裏看到的所有例子都刪除了整行,即使它在行中有一些數據。其中一些刪除行但不刪除該行,以便單元格向上移動。

請幫我一把。

+0

*「所有那裏的解決方案「* - 您可以包含這樣的解決方案嗎? – GolezTrol

回答

0

嘗試以下各項

Option Explicit 
Sub DeleteBlankRow() 
    Dim i As Long 

    ActiveSheet.UsedRange.Select 
    '//- Turn off calculation and screenupdating. 
    With Application 
     .Calculation = xlCalculationManual 
     .ScreenUpdating = False 
      '//- Work backwards because we are deleting rows. 
      For i = Selection.Rows.Count To 1 Step -1 
       If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then 
        Selection.Rows(i).EntireRow.Delete 
       End If 
      Next i 
     .Calculation = xlCalculationAutomatic 
     .ScreenUpdating = True 
    End With 
End Sub 
0

您可以使用此算法:
1)找到最後一行是包含任何價值;
2)通過與行中值的計數的行執行循環和在情況下刪除行當行值的計數等於零,它可以看起來像下面的例子:

Sub DeleteBlankRows() 
    Dim i&: i = Cells.Find("*", , , , xlByRows, xlPrevious).Row 
    While i <> 0 
     If WorksheetFunction.CountA(Rows(i)) = 0 Then Rows(i).Delete 
     i = i - 1 
    Wend 
End Sub 
相關問題