In diesem Artikel werden wir ein Makro erstellen, um Monate zwischen dem definierten Zeitraum und auch die Anzahl der Tage in diesem bestimmten Monat aufzulisten. Es wird auch die Gesamtzahl der Tage zwischen dem definierten Zeitraum angezeigt.
Wir haben das Makro "DaysInPeriod" erstellt, um Monate und die Anzahl der Tage in einem Monat aufzulisten. Das Makro kann durch Klicken auf die Schaltfläche „Senden“ ausgeführt werden.
Vor dem Ausführen des Makros müssen Start- und Enddatum eingegeben werden. Es nimmt den Wert in Zelle „G6“ als Startdatum und den Wert in Zelle „G7“ als Enddatum an. Die Ausgabe wird unten in der Zelle „F9“ angezeigt.
Wenn Sie auf die Schaltfläche "Senden" klicken, zeigt das Makro den Namen des Monats in Spalte F und die Anzahl der Tage in diesem Monat in Spalte G an. Die letzte Zeile zeigt die Gesamtzahl der Tage zwischen dem angegebenen Zeitraum.
Logikerklärung
Im Makro starten wir eine Schleife vom Startdatum bis zum angegebenen Enddatum. Während der Schleife prüfen wir das letzte Datum eines Monats. Wenn das letzte Datum eines Monats gefunden wird, werden der Monatsname und die Anzahl der Tage in diesem Monat in den Spalten F und G angezeigt. Auf ähnliche Weise prüfen wir auch das Enddatum. Wenn das Enddatum erreicht wird, wird der Eintrag für den letzten Monat und die Anzahl der Tage in diesem Monat angezeigt.
Bitte folgen Sie unten für den Code
Option Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Vorherigen Inhalt löschen Range("F10:G1048576").ClearContents 'Start- und Enddatum abrufen StartDate = Range("G6") EndDate = Range("G7") 'Variable auf Startzeilennummer initialisieren intRow = 10 'Monate und Anzahl der Tage vom Startdatum bis zum Enddatum auflisten Do intDays = intDays + 1 'Überprüfen auf letztes Datum des Monats oder wenn StartDate gleich ist to EndDate If (Month(StartDate) Month(StartDate + 1)) Or StartDate = EndDate Then 'Einfügen des Monatsnamens Cells(intRow, 6) = Format(StartDate, "mmmm") 'Anzahl der Tage im Monat einfügen Cells( intRow, 7) = intDays 'Zur nächsten Zeile wechseln intRow = intRow + 1 intDays = 0 End If 'Zum nächsten Datum wechseln StartDate = StartDate + 1 Schleife bis StartDate > EndDate 'Die Summe in der letzten Zeile abrufen Cells(intRow, 6) = "Total Days" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site