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 |