Função VBA DateAdd

Descrição DateAdd

A função VBA DateAdd permite adicionar (ou subtrair) dias, meses, anos, horas, trimestres, etc. a datas ou horas.

Exemplos Simples de Adição de Data

Aqui está um exemplo simples de DateAdd:

123 Sub DateAdd_Day ()MsgBox DateAdd ("d", 20, # 4/1/2021 #)End Sub

Este código irá adicionar 20 dias (indicado por “d”) à data 01/04/2021:

Em vez disso, podemos alterar o argumento de intervalo de “d” para “m” para adicionar 20 meses à data 01/04/2021:

123 Sub DateAdd_Month ()MsgBox DateAdd ("m", 20, # 4/1/2021 #)End Sub

Em vez de exibir a data em uma caixa de mensagem, podemos atribuí-la a uma variável:

123456 Sub DateAdd_Day2 ()Dim dt as Datedt = DateAdd ("d", 20, # 4/1/2021 #)MsgBox dtEnd Sub

Sintaxe DateAdd

No Editor VBA, você pode digitar “DateAdd (” para ver a sintaxe da Função DateAdd:

A função DateAdd contém 3 argumentos:

Intervalo: Unidade de tempo (dias, meses, anos, etc.). Digite como string. (ex. “m” para mês)

Configuração Descrição
aaaa Ano
q Trimestre
m Mês
y Dia do ano
d Dia
C Dia da semana
ww Semana
h Hora
n Minuto
s Segundo

Número: Valor numérico que representa o número de unidades de tempo a serem adicionadas. (ex. 20 para adicionar 20 unidades)

Encontro: Data inicial. Veja a próxima seção.

Programação VBA | O Code Generator funciona para você!

Exemplos de função Excel VBA DateAdd

Referenciando datas

Para começar, demonstraremos maneiras diferentes de fazer referência a datas usando a função VBA DateAdd.

Cada uma dessas funções DateAdd produz o mesmo resultado:

123456789 Sub DateAdd_ReferenceDates ()MsgBox DateAdd ("m", 2, # 4/1/2021 #)MsgBox DateAdd ("m", 2, DateSerial (2021, 4, 1))MsgBox DateAdd ("m", 2, DateValue ("1 de abril de 2022"))End Sub

Ou você pode fazer referência a uma célula que contém uma data:

12345 Sub DateAdd_ReferenceDates_Cell ()MsgBox DateAdd ("m", 2, Intervalo ("C2"). Valor)End Sub

Ou crie e faça referência a uma variável de data:

12345678 Sub DateAdd_Variable ()Dim dt As Datedt = # 4/1/2021 #MsgBox DateAdd ("m", 2, dt)End Sub

Adicionar ou subtrair datas

Já mostramos como adicionar a uma data:

123456 Sub DateAdd_Day2 ()Dim dt as Datedt = DateAdd ("d", 20, # 4/1/2021 #)MsgBox dtEnd Sub

Você pode subtrair das datas usando um número negativo (por exemplo, -20 em vez de 20):

123456 Sub DateAdd_Day ()Dim dt as Datedt = DateAdd ("d", -20, # 4/1/2021 #)MsgBox dtEnd Sub

Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!

Adicionando diferentes unidades de tempo

Anos

123 Sub DateAdd_Years ()MsgBox DateAdd ("aaaa", 4, # 4/1/2021 #)End Sub

Trimestre

123 Sub DateAdd_Quarters ()MsgBox DateAdd ("q", 2, # 4/1/2021 #)End Sub

Mês

123 Sub DateAdd_Months ()MsgBox DateAdd ("m", 2, # 4/1/2021 #)End Sub

Dia do ano

123 Sub DateAdd_DaysofYear ()MsgBox DateAdd ("y", 2, # 4/1/2021 #)End Sub

Dia

123 Sub DateAdd_Days3 ()MsgBox DateAdd ("d", 2, # 4/1/2021 #)End Sub

Dia da semana

123 Sub DateAdd_Weekdays ()MsgBox DateAdd ("w", 2, # 4/1/2021 #)End Sub

Semana

123 Sub DateAdd_Weeks ()MsgBox DateAdd ("ww", 2, # 4/1/2021 #)End Sub

Programação VBA | O Code Generator funciona para você!

Adicionar ao Hoje

Esses exemplos adicionarão unidades de tempo ao dia de hoje usando a função de data.

123456789 Sub DateAdd_Year_Test ()Dim dtToday As DateDim dtLater As DatedtToday = DatedtLater = DateAdd ("aaaa", 1, dtToday)MsgBox "Um ano depois é" & dtLaterEnd Sub
123 Sub DateAdd_Quarter_Test ()MsgBox "2 trimestres depois é" & DateAdd ("q", 2, Data)End Sub

Adicionando e subtraindo tempo

A função DateAdd também funciona com o Times. Aqui estão alguns exemplos de adição (ou subtração) de um tempo:

Hora

Este exemplo adicionará 2 horas a um horário:

123 Sub DateAdd_Hour ()MsgBox DateAdd ("h", 2, # 4/1/2021 6: 00: 00 #)End Sub

Minuto

Este exemplo subtrairá 120 minutos da hora atual:

123 Sub DateAdd_Minute_Subtract ()MsgBox DateAdd ("n", -120, agora)End Sub

Segundo

123 Sub DateAdd_Second ()MsgBox DateAdd ("s", 2, # 4/1/2021 6: 00: 00 #)End Sub

Data de formatação

Quando as datas (ou horas) são exibidas no Excel, UserForms ou Messageboxes, você deve indicar como as datas devem ser exibidas usando a função Format. Incluímos alguns exemplos abaixo:

123456789101112131415161718 Sub FormattingDatesTimes ()'Retorna a data e hora atuaisdt = agora ()'ex. 02/07/2021Intervalo ("B2") = Formato (dt, "mm / dd / aaaa")'ex. 2 de julho de 2022Intervalo ("B3") = Formato (dt, "mmmm d, aaaa")'ex. 2 de julho de 2022 09:10Intervalo ("B4") = Formato (dt, "mm / dd / aaaa hh: mm")'ex. 7.2.21 9:10 AMIntervalo ("B5") = Formato (dt, "m.d.yy h: mm AM / PM")End Sub

wave wave wave wave wave