Como encontrar o último dia do mês usando vba (com exemplo)
Você pode usar a função DateSerial() em VBA com um valor 0 para o argumento do dia para encontrar o último dia do mês para uma data em uma célula específica.
Por exemplo, você pode usar a seguinte sintaxe para encontrar o último dia do mês para a data na célula A1 e retornar essa data na célula B1 :
dateVal = DateValue(Range(" A1 "))
Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Por exemplo, se a célula A1 contiver 1/5/2023 , a célula B1 retornará 1/31/2023 .
O exemplo a seguir mostra como usar esta função na prática.
Exemplo: usando VBA para encontrar o último dia do mês
Digamos que temos o seguinte conjunto de dados no Excel que contém informações sobre vendas realizadas em diferentes datas em uma empresa:
Suponha que queiramos encontrar o último dia do mês para cada data na coluna A e retornar a data na célula correspondente na coluna C.
Podemos usar a seguinte sintaxe para fazer isso:
SubFirstDayOfMonth ()
Dim i As Integer
For i = 2 To 11
dateVal = DateValue(Range(" A " & i))
Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Cada uma das datas na coluna C representa o último dia do mês para a data correspondente na coluna A.
Nota nº 1: No código, usamos For i = 2 to 11 , pois as células A2 a A11 continham as datas nas quais estávamos interessados. Sinta-se à vontade para alterar esse intervalo dependendo do intervalo de células que deseja usar.
Nota nº 2 : você pode encontrar a documentação completa da função DateSerial() no VBA aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns usando VBA:
Como classificar por data no VBA
Como adicionar if entre duas datas no VBA
Como contar maior que a data no VBA