In dit artikel zullen we een macro maken om de maanden tussen de gedefinieerde periode en ook het aantal dagen in die specifieke maand weer te geven. Het zal ook het totale aantal dagen tussen de gedefinieerde periode weergeven.
We hebben de macro "DaysInPeriod" gemaakt om de maanden en het aantal dagen in een maand weer te geven. Macro kan worden uitgevoerd door op de knop "Verzenden" te klikken.
Voordat u de macro uitvoert, moet u de start- en einddatum invoeren. Het heeft waarde in cel "G6" als startdatum en waarde in cel "G7" als einddatum. De uitvoer wordt hieronder weergegeven in de cel "F9".
Als u op de verzendknop klikt, geeft de macro de naam van de maand weer in kolom F en het aantal dagen in die maand in kolom G. De laatste rij toont het totale aantal dagen tussen de opgegeven periode.
Logische uitleg
In de macro beginnen we met een lus vanaf de startdatum naar de opgegeven einddatum. Tijdens het lussen kijken we naar de laatste datum van een maand. Als de laatste datum van een maand wordt gevonden, wordt de naam van de maand en het aantal dagen in die maand weergegeven in de kolommen F en G. Op dezelfde manier controleren we ook op de einddatum. Wanneer de einddatum wordt gevonden, wordt de invoer voor de laatste maand en het aantal dagen in die maand weergegeven.
Volg hieronder voor de code:
Optie Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Vorige inhoud wissen Range("F10:G1048576").ClearContents 'Start- en einddatum ophalen StartDate = Range("G6") EndDate = Range("G7") 'Initialiseren van de variabele naar startrijnummer intRow = 10 'Opsomming van de maanden en het aantal dagen van startdatum tot einddatum Do intDays = intDays + 1 'Controleren op de laatste datum van de maand of wanneer StartDate gelijk is to EndDate If (Maand(StartDate) Month(StartDate + 1)) Of StartDate = EndDate Then 'Invoegen van de naam van de maand Cells(intRow, 6) = Format(StartDate, "mmmm") 'Invoegen van het aantal dagen in de maand Cells( intRow, 7) = intDays 'Naar de volgende rij gaan intRow = intRow + 1 intDays = 0 End If 'Naar de volgende datum gaan StartDate = StartDate + 1 Loop Tot StartDate > EndDate 'De som in de laatste rij ophalen Cellen(intRow, 6) = "Totaal aantal dagen" Cellen(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.
We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite