2015-04-16 76 views
-3

左邊是我有什麼數據,右邊是我需要的數據。刪除空行

enter image description here

如果你認爲一個非VBA的解決方案會更好,讓我知道。

+2

有這裏沒有問題... –

+3

除了糖化土豆可能的例外,VBA是做**任何事情的最佳方式**。 –

+0

你正在尋找簡單的堆疊值之間沒有空格?如果是這樣,請在它們之間插入一列,然後將公式= Row()添加到列b和d中,然後在公式上覆制/粘貼值。然後,您可以按列A對列A:B進行排序,以將列a分組在一起。然後再對B:A進行排序,將它們重排到原來的排序順序。重複列C:D。 – rgo

回答

0
Sub RemoveBlankCells() 

'Deletes single cells that are blank located inside a designated range 
Dim rng As Range 

    Set rng = Range("A1:A10").SpecialCells(xlCellTypeBlanks) 
    rng.Rows.Delete Shift:=xlShiftUp 

End Sub 

這將選擇一個範圍並找到該範圍內的任何空白單元格並將其刪除。根據需要修改範圍。

0

我認爲解決您的問題的最佳方法是對不同的單元格進行排序。 您可以製作一個功能您可以在其中選擇一個輸入範圍(截圖中的列A和B),並使用VBA創建一個功能,用於檢測空單元格並對範圍進行排序。 爲了檢測空單元格,你可以使用IsEmpty(「你的單元格」)。

0

我經常這樣做:

LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Change number for column selection 
Range("A1:A" & LastRow).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlShiftUp 

在你的屏幕截圖,細胞第1行開始,但刪除空白單元格後,你必須先排空白。如果您還需要這個,你可以使用:

Cells(1, 1).Insert 'Change second number for column selection 
0

在E使用陣列公式,

=IFERROR(INDEX(A$1:A$999, MATCH(0, IF(LEN(A$1:A$999), COUNTIF(E$1:E1, A$1:A$999), 1), 0)), "") 

數組公式需要與按Ctrl +敲定 + Enter↵。如果輸入正確,Excel將包含公式括號(例如{});你不要把它們放在自己身上。

一旦輸入正確,填寫正確的一列趕在B列中的值,然後填寫E2:F2下來就必須抓住所有的唯一非空值的列A和B.