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:

VBA encontra último dia do mês

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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *