Liste und fügt Tage der Monate, in einem festgelegten Zeitraum mit VBA in Microsoft Excel
In diesem Artikel erstellen wir ein Makro, um Monate zwischen dem definierten Zeitraum und der Anzahl der Tage in diesem bestimmten Monat aufzulisten. Außerdem wird die Gesamtzahl der Tage zwischen dem definierten Zeitraum angezeigt.
Wir haben das Makro „DaysInPeriod“ erstellt, um Monate und Anzahl der Tage in einem Monat aufzulisten. Das Makro kann durch Klicken auf die Schaltfläche „Senden“ ausgeführt werden.
Bevor das Makro ausgeführt wird, muss eine Eingabe für das Start- und Enddatum angegeben werden. Der Wert in Zelle „G6“ wird als Startdatum und der Wert in Zelle „G7“ als Enddatum verwendet. 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. In der letzten Zeile wird die Gesamtzahl der Tage zwischen dem angegebenen Zeitraum angezeigt.
Logische Erklärung
Im Makro beginnen wir mit der 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. In ähnlicher Weise prüfen wir auch das Enddatum. Wenn das Enddatum erreicht ist, werden 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 'Clearing previous content Range("F10:G1048576").ClearContents 'Getting start and end date StartDate = Range("G6") EndDate = Range("G7") 'Initializing the variable to starting row number intRow = 10 'Listing the months and number of days from starting date to end date Do intDays = intDays + 1 'Checking for last date of the month or when StartDate is equal to EndDate If (Month(StartDate) <> Month(StartDate + 1)) Or StartDate = EndDate Then 'Inserting the month name Cells(intRow, 6) = Format(StartDate, "mmmm") 'Inserting number of days in the month Cells(intRow, 7) = intDays 'Moving to next row intRow = intRow + 1 intDays = 0 End If 'Moving to next date StartDate = StartDate + 1 Loop Until StartDate > EndDate 'Getting the sum in the last row Cells(intRow, 6) = "Total Days" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]