Lista y añadir días de meses en un período determinado utilizando VBA en Microsoft Excel
En este artículo, crearemos una macro para enumerar meses entre el período definido y también el número de días en ese mes en particular. También mostrará el número total de días entre el período definido.
Hemos creado la macro «DaysInPeriod» para enumerar los meses y el número de días de un mes. La macro se puede ejecutar haciendo clic en el botón «Enviar».
Antes de ejecutar la macro, se debe proporcionar información para la fecha de inicio y finalización. Toma el valor en la celda «G6» como fecha de inicio y el valor en la celda «G7» como fecha de finalización. La salida se mostrará a continuación en la celda «F9».
Al hacer clic en el botón enviar, la macro mostrará el nombre del mes en la columna F y el número de días de ese mes en la columna G. La última fila mostrará el número total de días entre el período especificado.
Explicación lógica
En la macro, comenzamos a recorrer desde la fecha de inicio hasta la fecha de finalización especificada. Durante el bucle, verificamos la última fecha de un mes. Si se encuentra la última fecha de un mes, el nombre del mes y el número de días de ese mes se muestran en las columnas F y G. De manera similar, también verificamos la fecha de finalización. Cuando se encuentra la fecha de finalización, se muestra la entrada del último mes y el número de días de ese mes.
Siga a continuación el código
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
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]