Löschen alter Daten aus einem Arbeitsblatt (Microsoft Excel)
Gene sucht nach einer Möglichkeit, Daten basierend auf dem Datum in einer bestimmten Spalte schnell aus einem Arbeitsblatt zu löschen. Wenn das Datum älter als heute ist (das Datum ist vergangen), sollte die Zeile gelöscht werden.
Dies kann ziemlich einfach mit einem Makro durchgeführt werden. Alles, was Sie tun müssen, ist der Makroschritt durch die Daten und der Vergleich des Datums in jeder Zeile mit dem heutigen Datum. Wenn das Datum kleiner als heute ist, wird die Delete-Methode für das EntireRow-Objekt verwendet.
Sub DeleteRows1() Dim x As Long Dim iCol As Integer iCol = 7 'Filter all on Col G For x = Cells(Cells.Rows.Count, iCol).End(xlUp).Row To 2 Step -1 If Cells(x, iCol).Value < Date Then Cells(x, iCol).EntireRow.Delete End If Next End Sub
In diesem Beispiel überprüft das Makro die Spalte G (in der iCol-Variablen) auf das Datum. Wenn sich Ihr Datum in einer anderen Spalte befindet, sollten Sie die Änderung an der Variablen vornehmen. Abhängig von der Anzahl der Datenzeilen in Ihrem Arbeitsblatt kann die Ausführung des Makros auch eine Weile dauern.
Wenn Sie eine Leistungsverzögerung feststellen, möchten Sie möglicherweise einen anderen Ansatz verwenden. Im folgenden Beispiel werden die AutoFilter-Funktionen von Excel verwendet, um zuerst die Daten zu filtern, um nur die alten Daten anzuzeigen, und diese Zeilen dann zu löschen.
Sub DeleteRows2() Dim Dates As Range Dim nRows As Double Dim currDate As Variant 'Format dates as text Range("Dates").NumberFormat = "@" 'Today's date in number format currDate = CDbl(Date) Range("Dates").AutoFilter Field:=1, _ Criteria1:="<" & currDate nRows = Range("Dates").Rows.Count Rows("2:" & nRows).Select Selection.Delete Shift:=xlUp Range("Dates").AutoFilter Range("Dates").NumberFormat = "m/d/yyyy" Range("C2").Select End Sub
Dieses Makro setzt voraus, dass Sie Ihrem Datenbereich einen Namen zugewiesen haben. Wählen Sie alle Zellen in Ihrer Datentabelle aus – einschließlich aller Überschriftenzeilen – und geben Sie ihr den Namen „Datumsangaben“. Wenn Sie das Makro ausführen, wird dieser Bereich als Ziel für den AutoFilter verwendet.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3384) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: