Vba: como obter mês e ano a partir da data
Você pode usar a propriedade NumberFormat no VBA para obter o mês e o ano de uma data.
Esta é uma maneira comum de usar essa propriedade na prática:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
Esta macro específica encontra o mês e o ano para cada data no intervalo A2:A11 e exibe esses valores nas células correspondentes no intervalo C2:C11 .
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: Adicione dias a este dia no VBA
Suponha que temos o seguinte conjunto de dados no Excel que contém informações sobre as vendas realizadas por uma empresa em datas diferentes:
Suponha que queiramos obter o mês e o ano de cada célula na coluna de data.
Podemos criar a seguinte macro para fazer isso:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " mm/yyyy "
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que a coluna C contém o mês e o ano de cada data correspondente na coluna A.
Observe que usamos a propriedade NumberFormat para formatar datas com dois dígitos para meses e quatro dígitos para anos.
Poderíamos optar por exibir esses valores em um formato diferente, se quiséssemos.
Por exemplo, poderíamos usar a seguinte sintaxe para exibir o mês com um único dígito (se o mês contiver apenas um dígito) e o ano com dois dígitos:
SubGetMonthYear ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i).Value = DateValue(Range(" A " & i))
Range(" C " & i).NumberFormat = " m/yy "
Next i
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Sinta-se à vontade para brincar com as diferentes opções de formatação para exibir os valores de mês e ano conforme desejar.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como comparar datas em VBA
Como converter string para data em VBA
Como calcular dias entre duas datas em VBA