Ich habe eine Schleife nach unten in meinem Code, die erfolgreich meine Daten durchläuft und alle Zeilen mit Spalte H = 0 löscht.Excel VBA - Löschen von Zeilen mit Zellwerten in Spalte B, in denen Referenzfehler enthalten sind
Es gibt jedoch mehrere Zellen in Spalte B, die #REF!
anzeigen. Ich möchte auch, dass diese Schleife diese Zeilen auf die gleiche Weise wie die 0 in Spalte H löscht.
Ich denke, mein Problem ist nicht zu wissen, wie diese Art von Fehlern zu verweisen. Das Behandeln von #REF!
wie eine Zeichenfolge scheint nicht zu funktionieren.
Vielen Dank!
Sub test()
Dim currentSht As Worksheet
Dim lastRow As Long
Dim lastCol As Long
Dim startCell As Range
Dim r As Integer
Set startCell = Sheets("Sheet1").Range("A1")
Set currentSht = ActiveWorkbook.Sheets("Sheet1")
lastRow = startCell.SpecialCells(xlCellTypeLastCell).Row '<~~ Not sure why, but do not use "Set" when defining lastRow
lastCol = startCell.SpecialCells(xlCellTypeLastCell).Column
For r = 1 To lastRow Step -1
If currentSht.Cells(r, "H").Value = 0 Or currentSht.Cells(r, "B").Text = "#REF!" Then
Rows(r).Select
Selection.EntireRow.Delete
End If
Next r
currentSht.Range(startCell, currentSht.Cells(lastRow, lastCol)).Select
End Sub
Try 'IsError (currentSht.Cells Linie (r, "B")) statt. –
können Sie auch die Löschzeilen mit 'Zeilen (r) .Delete' kombinieren –
Anstatt die Eigenschaft 'Value' zu prüfen, überprüfen Sie die Eigenschaft' Text'. Das sollte die '#REF!' - Zeichenfolge zurückgeben. –