Excel - Ein Makro zum Löschen von Zeilen mit bestimmten Werten
- Problem
- Lösung
- Beachten Sie, dass
Problem
Grundsätzlich habe ich ein Blatt mit Informationen zu verschiedenen Abteilungen, und ich möchte jede Zeile mit Ausnahme der Zeilen löschen, die bestimmte Werte enthalten (die ich beim Ausführen des Skripts eingeben möchte).
Nehmen wir an, in der Spalte mit dem Namen der Abteilung (in meinem Blatt mit dem Namen "Avd") möchte ich, dass das Skript nach Zellen sucht, die beispielsweise die Nummern 1, 3, 5, 6 oder 21 nicht enthalten. und so weiter (ich habe ungefähr 36 verschiedene Nummern).
Lösung
Sie müssen nur die Informationen in der Spalte markieren und dann das folgende Makro ausführen. In einem Kästchen werden Sie aufgefordert, den Wert auszuwählen, den Sie beibehalten möchten. Dies ist für bis zu 30.000 Zeilen verfügbar.
Sub DeleteRows () Dim strToDelete As String Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim J As Integer Dim DeletedRows As Integer strToDelete = InputBox ("Wert zum Auslösen Keep, Jason ??? ? ", " Zeilen löschen ") Setze rngSrc = ActiveSheet.Range (ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column Dim topRows As Integer Dim bottomRows As Integer bottomRows = 30000 For J = ThisRow To NumRows Schritt 1 Wenn Cells (J, ThisCol) = strToDelete Then 'Rows (J). Select topRows = J Exit For DeletedRows = DeletedRows + 1 End If Next J For J = (topRows + 1) To NumRows Schritt 1 If Cells (J, ThisCol) strToDelete Then 'Rows (J). Select bottomRows = J Exit For' DeletedRows = DeletedRows + 1 End If Next J If topRows 4 Then ActiveSheet.Range (Cells (4, 1), Zellen (topRows - 1, 52)). Select Selection.delete Shift: = xlUp End If ActiveSheet.Range (Zellen (bottomRows - topRows + 4, 1), Zellen (30000, 52)). Select Selection.delete Shift: = xlUp 'MsgBox "Anzahl gelöschter Zeilen:" & DeletedRows End Sub
Beachten Sie, dass
Vielen Dank an Jason für diesen Tipp im Forum.