/ Data e hora do VBA do Excel

Data e hora do VBA do Excel

Ano, Mês, Dia de uma Data | DateAdd | Data e hora atuais | Hora, minuto, segundo | Valor do tempo

Aprenda a trabalhar com datas e horas em Excel VBA.

Coloque um botão de comando na sua planilha e adicione as linhas de código abaixo. Para executar as linhas de código, clique no botão de comando na planilha.

Ano, Mês, Dia de uma Data

A macro a seguir recebe o ano de uma data. Para declarar uma data, use a instrução Dim. Para inicializar uma data, use a função DateValue.

Código:

Dim exampleDate As Date

exampleDate = DateValue("Jun 19, 2010")

MsgBox Year(exampleDate)

Resultado:

Ano de uma data no Excel VBA

Nota: Use Mês e Dia para obter o mês e o dia de uma data.

DateAdd

Para adicionar um número de dias a uma data, use oFunção DateAdd. A função DateAdd tem três argumentos. Preencha "d" para o primeiro argumento para adicionar dias. Preencha 3 para o segundo argumento para adicionar 3 dias. O terceiro argumento representa a data em que o número de dias será adicionado.

Código:

Dim firstDate As Date, secondDate As Date

firstDate = DateValue("Jun 19, 2010")
secondDate = DateAdd("d", 3, firstDate)

MsgBox secondDate

Resultado:

DateAdd

Nota: Altere "d" para "m" para adicionar um número de meses a uma data. Coloque o cursor no DateAdd no Editor do Visual Basic e clique em F1 para obter ajuda sobre os outros especificadores de intervalo. Datas estão no formato dos EUA. Meses primeiro, segundo dia. Esse tipo de formato depende das configurações regionais do Windows.

Data e hora atuais

Para obter a data e hora atuais, use a função Now.

Código:

MsgBox Now

Resultado:

Data e hora atuais

Hora, minuto, segundo

A hora certa, use a função Hour.

Código:

MsgBox Hour(Now)

Resultado:

Hora do Horário Atual

Nota: Use Minuto e Segundo para obter o minuto e o segundo de um tempo.

Valor do tempo

A função TimeValue converte uma string em um número de série de tempo. O número de série da hora é um número entre 0 e 1. Por exemplo, o meio-dia (na metade do dia) é representado como 0,5.

Código:

MsgBox TimeValue("9:20:01 am")

Resultado:

Valor do tempo

Agora, para ver claramente que o Excel lida com tempos internamente como números entre 0 e 1, adicione as seguintes linhas de código:

Dim y As Double
y = TimeValue("09:20:01")
MsgBox y

Resultado:

Número de série do tempo

Leia também: