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 l'input per la data di inizio e di fine. Prende valore nella cella "G6" come data di inizio e valore nella cella "G7" come data di fine. L'output verrà visualizzato di seguito 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 il ciclo dalla data di inizio alla data di fine specificata. Durante il ciclo, 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 si incontra la data di fine, viene visualizzata la voce per l'ultimo mese e il numero di giorni in quel mese.
Si prega di seguire sotto per il codice
Option Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Cancellazione del contenuto precedente Range("F10:G1048576").ClearContents 'Ottenimento della data di inizio e fine StartDate = Range("G6") EndDate = Range("G7") 'Inizializzazione della variabile al numero di riga iniziale intRow = 10 'Elencazione dei mesi e del numero di giorni dalla data di inizio alla data di fine Do intDays = intDays + 1 'Verifica dell'ultima data del mese o quando StartDate è uguale to EndDate If (Month(StartDate) Month(StartDate + 1)) Or StartDate = EndDate Then 'Inserimento del nome del mese Cells(intRow, 6) = Format(StartDate, "mmmm") 'Inserimento numero di giorni nel mese Cells( intRow, 7) = intDays 'Spostamento alla riga successiva intRow = intRow + 1 intDays = 0 End If 'Spostamento alla data successiva StartDate = StartDate + 1 Loop fino a StartDate > EndDate 'Ottenimento della somma nell'ultima riga 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. Inoltre, puoi seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica