Neste artigo, criaremos uma macro para listar meses entre o período definido e também o número de dias naquele mês específico. Ele também exibirá o número total de dias entre o período definido.
Criamos a macro “DaysInPeriod” para listar os meses e o número de dias em um mês. A macro pode ser executada clicando no botão “Enviar”.
Antes de executar a macro, é necessário fornecer dados para as datas de início e término. Ele assume o valor da célula “G6” como data de início e o valor da célula “G7” como data de término. A saída será exibida abaixo na célula “F9”.
Ao clicar no botão enviar, a macro exibirá o nome do mês na coluna F e o número de dias daquele mês na coluna G. A última linha exibirá o número total de dias entre o período especificado.
Explicação lógica
Na macro, começamos o loop da data de início até a data de término especificada. Durante o loop, verificamos a última data de um mês. Se a última data de um mês for encontrada, o nome do mês e o número de dias desse mês serão exibidos nas colunas F e G. da mesma forma, também verificamos a data de término. Quando a data de término é encontrada, a entrada do último mês e o número de dias desse mês são exibidos.
Siga abaixo para o código
Option Explicit Sub DaysInPeriod () Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Limpando o conteúdo anterior Intervalo ("F10: G1048576"). ClearContents' Getting start start and end date StartDate = Range ("G6") EndDate = Range ("G7") 'Inicializando a variável para o número da linha inicial intRow = 10' Listando os meses e o número de dias da data de início à data final Do intDays = intDays + 1 'Verificando a última data do mês ou quando StartDate é igual to EndDate If (Month (StartDate) Month (StartDate + 1)) Or StartDate = EndDate Then 'Inserindo o nome do mês Cells (intRow, 6) = Format (StartDate, "mmmm")' Inserindo o número de dias no mês Cells ( intLinha, 7) = intDias 'Movendo para a próxima linha intRow = intLinha + 1 intDias = 0 End If' Movendo para a próxima data StartDate = StartDate + 1 Loop Até StartDate> EndDate 'Obtendo a soma na última linha Cells (intRow, 6) = "Total de dias" Células (intRow, 7) = Application.Sum (Range ("G10: G" & intRow)) End Sub
Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail