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 |