Liste og tilføj dage med måneder i en bestemt periode ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel vil vi oprette en makro til at liste måneder mellem den definerede periode og også antallet af dage i den pågældende måned. Det viser også det samlede antal dage mellem den definerede periode.

Vi har oprettet “DaysInPeriod” -makro til at vise måneder og antal dage i en måned. Makro kan udføres ved at klikke på knappen "Send".

Inden man kører makroen, skal man angive input til start- og slutdato. Det tager værdi i celle "G6" som startdato og værdi i celle "G7" som slutdato. Output vises nedenfor i "F9" -cellen.

Når du klikker på knappen Send, viser makroen månedens navn i kolonne F og antallet af dage i den måned i kolonne G. Den sidste række viser det samlede antal dage mellem den angivne periode.

Logisk forklaring

I makroen starter vi looping fra startdato til den angivne slutdato. Mens vi looper, tjekker vi for den sidste dato i en måned. Hvis den sidste dato i en måned opstår, vises månedsnavnet og antallet af dage i den pågældende måned i kolonne F og G. på samme måde kontrollerer vi også slutdatoen. Når der opstår slutdato, vises post for den sidste måned og antal dage i den pågældende måned.

Følg venligst nedenstående for koden

 Option Eksplicit underdageInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Rydder tidligere indholdsinterval ("F10: G1048576"). ClearContents' Start- og slutdato StartDate = Range ("G6") EndDate = Område ("G7") 'Initialisering af variablen til startrækkens nummer intRow = 10' Liste over måneder og antal dage fra startdato til slutdato Gør intDays = intDays + 1 'Kontrol af sidste dato i måneden, eller når StartDate er lig til EndDate If (Month (StartDate) Month (StartDate + 1)) Eller StartDate = EndDate Herefter 'Indsætter månedsnavnet Celler (intRow, 6) = Format (StartDate, "mmmm")' Indsætter antal dage i måneden Celler ( intRow, 7) = intDays 'Flytter til næste række intRow = intRow + 1 intDays = 0 End If' Flytter til næste dato StartDate = StartDate + 1 loop til StartDate> EndDate 'Henter summen i den sidste række Celler (intRow, 6) = "Total dage" -celler (intRow, 7) = Application.Sum (område ("G10: G" & intRow)) End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet