Lista och lägg till dagar i månader under en viss period med VBA i Microsoft Excel

Anonim

I den här artikeln kommer vi att skapa ett makro för att lista månader mellan den definierade perioden och även antalet dagar i den månaden. Det kommer också att visa det totala antalet dagar mellan den definierade perioden.

Vi har skapat ”DaysInPeriod” -makro för att lista månader och antal dagar i en månad. Makro kan köras genom att klicka på knappen "Skicka".

Innan du kör makrot måste du ange start- och slutdatum. Det tar värde i cell "G6" som startdatum och värdet i cell "G7" som slutdatum. Utdata visas nedan i "F9" -cellen.

När du klickar på skicka -knappen kommer makrot att visa månadens namn i kolumn F och antalet dagar i den månaden i kolumn G. Den sista raden visar totalt antal dagar mellan den angivna perioden.

Logisk förklaring

I makrot börjar vi loopa från startdatum till det angivna slutdatumet. Medan vi slingrar, letar vi efter det sista datumet i en månad. Om sista datumet för en månad påträffas, då visas månadsnamnet och antalet dagar i den månaden i kolumnerna F och G. på samma sätt kontrollerar vi också slutdatum. När slutdatumet påträffas visas post för den senaste månaden och antalet dagar i den månaden.

Följ koden nedan

 Alternativ Explicit Sub DaysInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Clearing previous content Range ("F10: G1048576"). ClearContents' Start- och slutdatum StartDate = Range ("G6") EndDate = Område ("G7") 'Initiera variabeln till startradnummer intRow = 10' Lista månader och antal dagar från startdatum till slutdatum Gör intDays = intDays + 1 'Kontrollerar efter sista datum i månaden eller när StartDate är lika till EndDate If (Month (StartDate) Month (StartDate + 1)) Eller StartDate = EndDate Sedan 'Infoga månadsnamnet Celler (intRow, 6) = Format (StartDate, "mmmm")' Infoga antal dagar i månaden Celler ( intRow, 7) = intDays 'Flyttar till nästa rad intRow = intRow + 1 intDays = 0 End If' Flyttar till nästa datum StartDate = StartDate + 1 loop till StartDate> EndDate 'Få summan i sista raden Celler (intRow, 6) = "Totala dagar" -celler (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub 

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen