2016-08-17 277 views
0

在Excel中,我想刪除所有空單元格,以便所有行和列都具有文本。刪除Excel中的空單元格

cell1 cell2 cell3 
1    peter 
... 

所以,我希望它是這樣的:

cell1 cell2 
1  peter 

我如何刪除空單元格?

我使用ods格式,是相關的嗎?

+0

歡迎來到Stack Overflow!您能否在解決問題的努力中獲得更好的標題和更詳細的內容信息? – manetsus

回答

0

在你具體的例子,你可以做F5(去) - >特別.. - >空白 - >確定。這將選擇空白單元格 - 然後您可以右鍵單擊 - >刪除 - >向左移動單元格。我不確定你的桌子的結構,所以這可能會混淆其他事情?

+0

我找不到Special。我使用ods格式的Excel。 – user6678274

+0

不認爲沒有使用.xls格式是可能的。道歉 –

0

嘗試下面溶液

1.Select在Excel

2.Press [F5]的範圍。

3.In所產生轉到對話框

4.Click特殊。單擊空白選項並單擊確定。

5.這樣做會選擇所選範圍內的空白單元格(您可能認爲是行)。

6.Right點擊>刪除>選擇您所需的選項(上移,留... ..)

重複上述直到所需的可能輸出達到

來源:http://www.techrepublic.com/blog/microsoft-office/a-quick-way-to-delete-blank-rows-in-excel/

+0

我找不到Special。我使用ods格式的Excel。 – user6678274

0

如果你想有一個VBA函數來爲你做,那麼你就需要這樣的東西:

Sub ClearBlanks(sheet As Worksheet) 

Dim rng As Range 
Dim firstRow As Integer 
Dim firstCol As Integer 
Dim lastRow As Integer 
Dim lastCol As Integer 
Dim i As Integer 
Dim j As Integer 
Dim isEmpty As Boolean 

    Set rng = sheet.UsedRange 
    firstRow = rng.Item(1).row 
    firstCol = rng.Item(1).Column 

    lastRow = firstRow + rng.Rows.Count - 1 
    lastCol = firstCol + rng.Columns.Count - 1 

    For i = lastCol To firstCol Step -1 
     isEmpty = True 
     For j = firstRow To lastRow 
      If sheet.Cells(j, i).Value <> "" Then 
       isEmpty = False 
       Exit For 
      End If 
     Next 
     If isEmpty Then 
      sheet.Columns(i).Delete 
     End If 
    Next 

    For j = lastRow To firstRow Step -1 
     isEmpty = True 
     For i = firstCol To lastCol 
      If sheet.Cells(j, i).Value <> "" Then 
       isEmpty = False 
       Exit For 
      End If 
     Next 
     If isEmpty Then 
      sheet.Rows(j).Delete 
     End If 
    Next 

    For i = firstCol - 1 To 1 Step -1 
     sheet.Columns(i).Delete 
    Next 

    For i = firstRow - 1 To 1 Step -1 
     sheet.Rows(i).Delete 
    Next 

End Sub 

注意,這只是刪除,是完全空的行或列,因此保留了表結構,如果只有行或列中的某些單元格爲空。