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.

RawInput

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.

AfterRunningMacro

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]