2014-03-24 155 views
1

如果交叉列中的某個單元格爲空白,是否有一種簡單的方法可以讓Excel刪除行?這需要VBA嗎?刪除基於空白單元格的行

爲參考點,我發現下面的VBA代碼:

Dim FoundCell As Range 
    Application.ScreenUpdating = False 
    Set FoundCell = Range("B:B").Find(what:="") 
    Do Until FoundCell Is Nothing 
     FoundCell.EntireRow.Delete 
     Set FoundCell = Range("B:B").FindNext 
    Loop 

但由於某些原因,當我嘗試運行它崩潰。

+0

SuperUser.com可能也是一個很好的問道。 http://meta.stackexchange.com/questions/90919/which-stack-exchange-site-is-best-for-microsoft-excel-questions – Kirby

+0

@simoco編輯更好地顯示我來自哪裏。 – 114

+0

所以,如果列B中的值爲空或「X」,您需要刪除行? –

回答

0

如果你想刪除所有行中在列中的值是空白的,然後嘗試:

Sub KleanB() 
    Dim B As Range, rDel As Range, r As Range, N As Long 
    N = Cells(Rows.Count, "B").End(xlUp).Row 
    Set B = Range("B1:B" & N) 
    B.Cells.SpecialCells(xlCellTypeBlanks).EntireRow.Delete 
End Sub 
0

對於非VBA的解決方案:

選擇列,其中空白可能會出現。按F5(轉到),單擊特殊並選擇空白。點擊確定。只有空白單元格會被選中。右鍵單擊其中一個空白單元格,然後單擊刪除行。