Função VBA DateDiff

Descrição DateDiff

Retorna a diferença entre dois valores de data, com base no intervalo especificado.

Exemplos simples de DateDiff

Aqui está um exemplo simples de DateDiff:

123 Sub DateDiff_Year ()MsgBox DateDiff ("aaaa", # 1/1/2019 #, # 8/1/2021 #)End Sub

Este código retornará 2. Esta é a diferença no ano (indicado por “aaaa”) entre 2 dias. (2021 - 2022 = 2)

No exemplo acima, alterando as posições de data1 e data2.

123 Sub DateDiff_Year ()MsgBox DateDiff ("aaaa", # 8/1/2021 #, # 1/1/2019 #)End Sub

Este código retornará -2.

Sintaxe DateDiff

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

A função DateDiff contém 5 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

Data1, Data2: Duas datas que você deseja usar no cálculo.

Primeiro dia da semana: Uma constante que especifica o primeiro dia da semana. Isso é opcional. Se não for especificado, o domingo será assumido.

Constante Valor Descrição
vbUseSystem 0 Use a configuração da API NLS.
vbSunday 1 Domingo (padrão)
vbMonday 2 Segunda-feira
vb terça 3 terça
vbquarta 4 quarta-feira
vb quinta-feira 5 quinta-feira
vbFriday 6 sexta-feira
vbSaturday 7 sábado

FirstWeekOfYear: Uma constante que especifica a primeira semana do ano. Isso é opcional. Se não for especificado, a primeira semana será considerada a semana em que ocorrerá 1º de janeiro.

Constante Valor Descrição
vbUseSystem 0 Use a configuração da API NLS.
vbFirstJan1 1 Comece com a semana em que ocorre 1º de janeiro (padrão).
vbFirstFourDays 2 Comece com a primeira semana que tenha pelo menos quatro dias no ano novo.
vbFirstFullWeek 3 Comece com a primeira semana inteira do ano.

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

Exemplos de função Excel VBA DateDiff

Referenciando datas

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

Cada uma dessas funções DateDiff produzem o mesmo resultado:

123456789 Sub DateDiff_ReferenceDates ()MsgBox DateDiff ("m", # 4/1/2019 #, # 8/1/2021 #)MsgBox DateDiff ("m", DateSerial (2019, 4, 1), DateSerial (2021, 8, 1))MsgBox DateDiff ("m", DateValue ("1 de abril de 2022"), DateValue ("1 de agosto de 2022"))End Sub

Ou você pode fazer referência a células que contêm datas:

12345 Sub DateDiff_ReferenceDates_Cell ()MsgBox DateDiff ("m", Intervalo ("C2"). Valor, Intervalo ("C3"). Valor)End Sub

Ou crie e faça referência a variáveis ​​de data:

123456789 Sub DateDiff_Variable ()Dim dt1 como data, dt2 como datadt1 = # 4/1/2019 #dt2 = # 8/1/2021 #MsgBox DateDiff ("m", dt1, dt2)End Sub

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

Usando Diferentes Unidades de Intervalo

Quartos

123 Sub DateDiff_Quarter ()MsgBox "o número de trimestres:" & DateDiff ("q", # 1/1/2019 #, # 1/1/2021 #)End Sub

Meses

123 Sub DateDiff_Month ()MsgBox "o número de meses:" & DateDiff ("m", # 1/1/2019 #, # 1/1/2021 #)End Sub

Dias

123 Sub DateDiff_Day ()MsgBox "o número de dias:" & DateDiff ("d", # 1/1/2019 #, # 1/1/2021 #)End Sub

Semanas

123 Sub DateDiff_Week ()MsgBox "o número de semanas:" & DateDiff ("w", # 1/1/2019 #, # 1/1/2021 #)End Sub

Horas

123456789101112 Sub DateDiff_Hour ()Dim dt1 como dataDim dt2 como dataDim nDiff enquanto longodt1 = # 8/14/2019 9:30:00 AM #dt2 = # 8/14/2019 13:00:00 #nDiff = DateDiff ("h", dt1, dt2)MsgBox "horas:" & nDiffEnd Sub

Minutos

123 Sub DateDiff_Minute ()MsgBox "mins:" & DateDiff ("n", # 8/14/2019 9:30:00 AM #, # 8/14/2019 9:35:00 AM #)End Sub

Segundos

123 Sub DateDiff_Second ()MsgBox "secs:" & DateDiff ("s", # 8/14/2019 9:30:10 #, # 8/14/2019 9:30:22 #)End Sub
wave wave wave wave wave