Lista e aggiungere giorni di mesi in un determinato periodo utilizzando VBA in Microsoft Excel
In questo articolo, creeremo una macro per elencare i mesi tra il periodo definito e anche il numero di giorni in quel particolare mese. Verrà inoltre visualizzato il numero totale di giorni tra il periodo definito.
Abbiamo creato la macro “DaysInPeriod” per elencare i mesi e il numero di giorni in un mese. La macro può essere eseguita facendo clic sul pulsante “Invia”.
Prima di eseguire la macro, è necessario fornire input per la data di inizio e di fine. Prende il valore nella cella “G6” come data di inizio e il valore nella cella “G7” come data di fine. L’output verrà visualizzato sotto nella cella “F9”.
Facendo clic sul pulsante di invio, la macro visualizzerà il nome del mese nella colonna F e il numero di giorni in quel mese nella colonna G. L’ultima riga mostrerà il numero totale di giorni tra il periodo specificato.
Spiegazione logica
Nella macro, iniziamo a scorrere dalla data di inizio alla data di fine specificata. Durante il loop, controlliamo l’ultima data di un mese. Se viene rilevata l’ultima data di un mese, il nome del mese e il numero di giorni in quel mese vengono visualizzati nelle colonne F e G. Allo stesso modo, controlliamo anche la data di fine. Quando viene rilevata la data di fine, viene visualizzata la voce per l’ultimo mese e il numero di giorni in quel mese.
Segui sotto per il codice
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
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]