VBA löscht Zeilen, wenn Leerzeichen oder 1 oder „Sicher“ vorhanden sind, behält aber leere Zellen mit 1 oder „Sicher“ mithilfe der Formel bei

VBA löscht Zeilen, wenn Leerzeichen oder 1 oder „Sicher“ vorhanden sind, behält aber leere Zellen mit 1 oder „Sicher“ mithilfe der Formel bei

Ich möchte eine leere Zelle aus dem Bereich löschen, T2:T200indem ich die Daten sicher halte, wenn die Zelle leer ist, ""oder 1 (=if(b2<>"",1,"")ohne (=if(b2<>"","safe","")Verwendung einer Schleife

Sub remove_blankrows()
Range("T2:T200").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Antwort1

Dies erreichen Sie, indem Sie in VBA einen formelbasierten Ansatz verwenden. So löschen Sie Zeilen mit leeren Zellen im Bereich T2:T200, während Zellen mit dem Wert 1 oder „Sicher“ intakt bleiben:

Sub remove_blankrows()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1") ' Replace "Sheet1" with your actual sheet name
    
    ' Apply the formula to identify rows to delete
    ws.Range("U2:U200").Formula = "=IF(OR(T2="""", T2=1, T2=""Safe""), """", ""Delete"")"
    
    ' Filter and delete rows based on the formula result
    ws.Range("U2:U200").AutoFilter Field:=1, Criteria1:="Delete"
    ws.Range("U2:U200").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ws.AutoFilterMode = False
    
    ' Clear the temporary formula column
    ws.Range("U2:U200").ClearContents
End Sub
  1. Der Bereich U2:U200 wird als temporäre Spalte verwendet, um eine Formel anzuwenden, die Zeilen basierend auf den Kriterien zum Löschen markiert.
  2. Die Formel prüft, ob die entsprechende Zelle in Spalte T leer (""), 1 oder "Sicher" ist und gibt eine leere Zeichenfolge ("") zurück, die angibt, dass die Zeile gelöscht werden soll.
  3. Nach dem Anwenden der Formel richtet der Code einen AutoFilter für die temporäre Spalte ein und filtert nach Zeilen, die als „Löschen“ markiert sind.
  4. Anschließend werden die sichtbaren Zeilen gelöscht und die temporäre Formelspalte geleert.
  5. Abschließend wird der AutoFilter ausgeschaltet.

verwandte Informationen