我無法設法清理「空行」的數據。刪除「0」沒有問題,但那些空的單元格不是空的,而是其中包含「空字符串」之類的內容。刪除「空」行時,他們只是「顯示爲空」
Sub Reinigung()
Application.ScreenUpdating = False
Application.EnableEvents = False
ListeEnde3 = ThisWorkbook.Sheets("input").Cells(Rows.Count, 1).End(xlUp).Row
For Zeile1 = 2 To ListeEnde3
If ThisWorkbook.Sheets("input").Cells(Zeile1, 14) = "0" Or ThisWorkbook.Sheets("2018").Cells(Zeile1, 14) = "" Then
ThisWorkbook.Sheets("input").Rows(Zeile1).Delete
Zeile1 = Zeile1 - 1
Else
End If
Next
' ThisWorkbook.Sheets("import").Columns(14).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
該代碼只是凍結我的excel,如果我離開了 thisWorkbook.Sheets("2018").Cells(Zeile1, 14) = ""
部分,它的工作原理,並刪除所有行,其中科拉姆14包含一個「0」。
如果我檢查顯示爲空白的單元格爲= isblank,它將返回「false」。單元中沒有「空間」,也沒有「'」。
怎麼辦?
編輯
第一提示後我的代碼看起來像現在這樣:
Sub Reinigung()
Dim ListeEnde3 As Long
Dim Zeile1 As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
ListeEnde3 = ThisWorkbook.Sheets("import").Cells(Rows.Count, 1).End(xlUp).Row
For Zeile1 = ListeEnde3 To 2 Step -1
Set rngX = ThisWorkbook.Sheets("import").Cells(Zeile1, 14)
If (rngX = "0" Or rngX = "") Then 'or rngY = vbNullString
ThisWorkbook.Sheets("import").Rows(Zeile1).Delete
End If
Next Zeile1
' ThisWorkbook.Sheets("import").Columns(14).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Excel中仍然崩潰/凍結(我等了5分鐘),但由於代碼運行「順利地」與F8我想用更少的數據給它一個鏡頭:它的工作原理!
如果我沒有減少數據,則有〜70000行檢查。我讓它在720行上運行,它工作。
任何方式來調整代碼的方式,它可以處理70000 +行?我不認爲它會太多。
謝謝!
關鍵問題:包含空字符串的單元格不是「空」。 –
如果您的列14是非負數,您可以先嚐試排序數據,然後刪除空行和零行。 – MacroMarc
'.Cells(Zeile1,14).Text =「」' – Slai