Ich schrieb eine Funktion der in der Lage sein sollte, die Arbeit zu erledigen.
So können Sie die Funktion von einem Sub aufrufen und die Spalte Zahl, die Sie testen möchten (1 für "A"), den Wert, den Sie testen möchten ("" für leer), den Namen des Arbeitsblattes würde gerne testen. Das letzte Argument ist ein boolescher Wert, und wenn es wahr ist, wird es bei Übereinstimmung mit dem Wert in den Kriterien gelöscht, wenn nicht, wird es bei irgendetwas anderem gelöscht.
Function DeleteCol(iCol As Integer, strCriteria As String, strWSName As String, bPositive As Boolean)
Dim iLastCol As Integer
Dim wsUsed As Worksheet
Set wsUsed = ThisWorkbook.Worksheets(strWSName)
iLastRow = wsUsed.Cells(Rows.Count, iCol).End(xlUp).Row
For i = iLastRow To 1 Step -1
With wsUsed.Cells(i, iCol)
If bPositive Then
If .Value = strCriteria Then .EntireRow.Delete
Else
If .Value <> strCriteria Then .EntireRow.Delete
End If
End With
Next i
End Function
So zu tun, was Ihnen angeforderte oben Sie tun können:
Sub Delete()
Call DeleteCol(1, "Subtotal:", "CoolSheetName", False)
Call DeleteCol(3, "", "CoolSheetName", True)
End Sub
Wollen Sie alle 'löschen Zeilen, in denen Spalte C keinen Zahlenwert hat und alle Zeilen löschen, in denen Spalte A nicht gleich "Zwischensumme:" ist (dh es bleiben nur Zeilen übrig, die "Zwischensumme:" in Spalte A ** und ** eine Zahl in Spalte enthalten) C), oder möchten Sie mit 'alle Zeilen mit Jobcode desc mit Zahlenwerten daneben und den Zeilen, die den String "Zwischensumme" enthalten Sie werden mit jeder Zeile verlassen, die "Zwischensumme:" ** oder ** eine Zahl in Spalte C enthält)? – YowE3K
Die gewünschten Ergebnisse wären das. ! [Nachher] (https://drive.google.com/file/d/0B8FsW0sImRM3UGkydEdiSFZ3Njg/view?usp=sharing) – lPaclMan