Der folgende Code überprüft, ob eine Zeile auf der Hauptseite ein Datum von vor einem Jahr enthält. Wenn dies der Fall ist, kopiert es es in das Arbeitsblatt "Archiv" und löscht es von der Hauptseite. Was es jetzt tut, ist jedoch nur Kopieren von der Hauptseite und Überschreiben, was bereits auf der Archivseite vorhanden ist, anstatt zur letzten Zeile hinzuzufügen. Ich habe versucht, in LastRow von einer Funktion subbing, aber ich bekam einen Fehler mit wie ich es benutze. Hat jemand eine bessere Lösung?Verschieben von Zellen in die letzte Zeile, ohne das vorhandene zu löschen
Sub TestDateTransfer()
With Application
PrevCalc = .Calculation
.Calculation = xlCalculationManual
.Cursor = xlWait
.Calculate
.EnableEvents = False
.ScreenUpdating = False
End With
Application.DisplayAlerts = False
Worksheets("Archive").Activate
Range("A3:I1000").Select
Selection.ClearContents
Worksheets("Main Page").Activate
Dim MyDate As Date
MyDate = "03/27/2017"
Set i = Sheets("Main Page")
Set E = Sheets("Archive")
Dim d
Dim j
d = 2
j = 2
Do Until IsEmpty(i.Range("C" & j))
If i.Range("C" & j) <= MyDate - 365 Then
d = d + 1
E.rows(d).Value = i.rows(j).Value
End If
j = j + 1
Loop
Worksheets("Archive").Activate
ActiveSheet.Range("H1").Select 'To unselect the page
Worksheets("Main Page").Activate
MyDate = "03/27/2017"
Dim y
Dim z
y = 2
z = 2
Do Until IsEmpty(i.Range("C" & z))
If i.Range("C" & z) <= MyDate - 365 Then
y = y + 1
i.rows(z).Delete
End If
z = z + 1
Loop
With Application
.Cursor = xlDefault
.Calculate
.Calculation = PrevCalc
'.ScreenUpdating = True 'Not Needed...
.EnableEvents = True
End With
ActiveSheet.Range("H1").Select
End Sub
Sheet1 sein müsste, was Blatt # es ist :) –
Hm, wie wollen Sie genau vorschlagen, dass ich das einstecken? In bitte von E.rows (d) .Wert? – dwirony
Ich habe es dort eingefügt und jetzt ersetzt es nur Spalte A und wird immer noch überschrieben/überschreibt O.O – dwirony