Wie kopiert man Zeilen und fügt sie basierend auf einem Datum in ein anderes Arbeitsblatt in Excel ein?
Angenommen, ich habe einen Datenbereich, und jetzt möchte ich die gesamten Zeilen basierend auf einem bestimmten Datum kopieren und sie dann in ein anderes Arbeitsblatt einfügen. Haben Sie gute Ideen, wie man diese Aufgabe in Excel bewältigen kann?
Kopieren von Zeilen und Einfügen in ein anderes Arbeitsblatt basierend auf dem heutigen Datum
Kopieren von Zeilen und Einfügen in ein anderes Arbeitsblatt, wenn das Datum größer als heute ist
Kopieren von Zeilen und Einfügen in ein anderes Arbeitsblatt basierend auf dem heutigen Datum
Wenn Sie die Zeilen kopieren müssen, falls das Datum heute ist, wenden Sie bitte den folgenden VBA-Code an:
1. Halten Sie die Tasten ALT + F11 gedrückt, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
2. Klicken Sie auf Einfügen > Modul, und fügen Sie den folgenden Code im Modulfenster ein.
VBA-Code: Kopieren und Einfügen von Zeilen basierend auf dem heutigen Datum:
Sub CopyRow()
'Updateby Extendoffice
Dim xRgS As Range, xRgD As Range, xCell As Range
Dim I As Long, xCol As Long, J As Long
Dim xVal As Variant
On Error Resume Next
Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
xCol = xRgS.Rows.Count
Set xRgS = xRgS(1)
Application.CutCopyMode = False
J = 0
For I = 1 To xCol
Set xCell = xRgS.Offset(I - 1, 0)
xVal = xCell.Value
If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then
xCell.EntireRow.Copy xRgD.Offset(J, 0)
J = J + 1
End If
Next
Application.CutCopyMode = True
End Sub
3. Nachdem Sie den obigen Code eingefügt haben, drücken Sie bitte die F5-Taste, um diesen Code auszuführen, und ein Eingabeaufforderungsfenster wird angezeigt, das Sie daran erinnert, die Datums-Spalte auszuwählen, basierend auf der Sie die Zeilen kopieren möchten, siehe Screenshot:
4. Klicken Sie dann auf die Schaltfläche OK, in einer weiteren Eingabeaufforderung wählen Sie eine Zelle in einem anderen Arbeitsblatt aus, wo Sie das Ergebnis ausgeben möchten, siehe Screenshot:
5. Klicken Sie anschließend auf die Schaltfläche OK, nun werden die Zeilen, deren Datum heute ist, sofort in das neue Arbeitsblatt eingefügt, siehe Screenshot:
Kopieren von Zeilen und Einfügen in ein anderes Arbeitsblatt, wenn das Datum größer als heute ist
Um die Zeilen zu kopieren und einzufügen, deren Datum größer oder gleich heute ist, zum Beispiel, wenn das Datum heute oder größer als 5 Tage seit heute ist, dann kopieren und fügen Sie die Zeilen in ein anderes Arbeitsblatt ein.
Der folgende VBA-Code könnte Ihnen helfen:
1. Halten Sie die Tasten ALT + F11 gedrückt, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
2. Klicken Sie auf Einfügen > Modul, und fügen Sie den folgenden Code im Modulfenster ein.
VBA-Code: Kopieren und Einfügen von Zeilen, wenn das Datum größer als heute ist:
Sub CopyRow()
'Updateby Extentoffice
Dim xRgS As Range, xRgD As Range, xCell As Range
Dim I As Long, xCol As Long, J As Long
Dim xVal As Variant
On Error Resume Next
Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
xCol = xRgS.Rows.Count
Set xRgS = xRgS(1)
Application.CutCopyMode = False
J = 0
For I = 1 To xCol
Set xCell = xRgS.Offset(I - 1, 0)
xVal = xCell.Value
If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then
xCell.EntireRow.Copy xRgD.Offset(J, 0)
J = J + 1
End If
Next
Application.CutCopyMode = True
End Sub
Hinweis: Im obigen Code können Sie die Kriterien ändern, z. B. kleiner als heute oder die Anzahl der Tage, wie Sie es benötigen, im Skriptcode If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then.
3. Drücken Sie dann die F5-Taste, um diesen Code auszuführen, wählen Sie in der Eingabeaufforderung die Datenspalte aus, die Sie verwenden möchten, siehe Screenshot:
4. Klicken Sie dann auf die Schaltfläche OK, in einer weiteren Eingabeaufforderung wählen Sie eine Zelle in einem anderen Arbeitsblatt aus, wo Sie das Ergebnis ausgeben möchten, siehe Screenshot:
5. Klicken Sie auf die Schaltfläche OK, nun wurden die Zeilen, deren Datum heute oder größer als 5 Tage seit heute ist, kopiert und in das neue Arbeitsblatt eingefügt, wie im folgenden Screenshot gezeigt:
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!