Ich habe derzeit eine "For Next" -Schleife, die durch verschiedene Jahre iteriert und ich möchte es ändern, um Daten durchlaufen, insbesondere das Ende eines jeden Monats. Mein generischer Code für die Jahresschleife ist unten. Das Durchlaufen von Jahren ist relativ einfach, da Sie ein Anfangsjahr haben, das eine Ganzzahl ist, und die Iteration ist 1. Jetzt möchte ich die Schleife ändern, um verschiedene Monatsendtermine zu durchlaufen. Zum Beispiel: 31.01.2003, 28.2.2003, ......, 31.12.2007. Beachten Sie außerdem, dass ich für jede Iteration ein neues Arbeitsblatt mit dem Namen der aktuellen Iteration als Namen des Arbeitsblatts anlege. Auch dies ist relativ einfach für ein Jahr, aber die Verwendung eines Datums mit einem "/" kompliziert die Dinge. Hat jemand irgendwelche Ideen zum Erstellen einer Schleife mit Monatsenddaten sowie das Erstellen von Blättern mit Daten? Ich habe ein Array der Daten, so dass sich der Code auf das Array innerhalb eines Blattes beziehen kann. Und der Name des Blattes könnte in irgendeinem Format sein. Zum Beispiel "MM-TT-JJJJ".For-Next-Schleife mit Monatsenddaten als Iteration
Sub YearLoop()
Dim FirstYr As Integer
Dim LastYr As Integer
Dim Sheetname As String
Dim Counter1 As Single
FirstYr = Sheets("Model").Range("ax15").Value
LastYr = Sheets("Model").Range("ax16").Value
Counter1 = 0
For J = FirstYr To LastYr
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = J
Sheetname = J
'do stuff
Counter1 = Counter1+1
Next
End Sub
Ich wollte dies vorschlagen mit einem datediff pro Tag zu subtrahieren, aber dieser Ansatz ist einfacher. – Chrismas007
Wird 'm = 13' Fehler? – Chrismas007
Nein, wenn der Tag 1 wäre, würde es als "01-Jan-2017" gelten, aber mit einem Tag Null ist es "31-Dez-2016". Das OP sollte in der Lage sein, dies leicht zu forschern ... Weiter innerhalb des jährlich in der Frage angebotenen. – Jeeped