Função DateDiff no Excel VBA
A função VBA Datediff fornece a diferença entre dois intervalos especificados. Aqui, o intervalo pode ser especificado como horas / meses / dias … etc., conforme especificado pelo usuário. É uma função embutida no Excel e categorizada como a função " Data / Hora ". Ele pode ser usado como uma função " VBA " no Excel.
Sintaxe :
Parâmetro ou argumentos usados na função DateDiff.
1. Intervalo:
- É obrigatório.
- Tipo: - Expressão do tipo string.
- Calcula a diferença entre as duas datas.
Configuração (intervalo) | Descrição / Explicação |
"S" | Segundos |
"N" | Minutos |
"H" | Horas |
"D" | Dias |
"W" | Dia da semana |
"M" | Meses |
"Ww" | Semana |
"Y" | Dia do ano |
"Q" | Trimestre |
"Aaaa" | Ano |
2. Data1:
- É obrigatório.
- Tipo: - Data.
- Representa a data / hora de início do cálculo da data datada.
3. Data2:
- É obrigatório.
- Tipo: - Data.
- Representa a data / hora final para o cálculo do datediff.
4. Primeiro dia da semana:
- É opcional
- Tipo: - Numérico ou Texto.
- Ele especifica o dia que é usado como o primeiro dia da semana.
- Se esse argumento ou parâmetro for omitido, ele assumirá domingo (VbSunday) como o primeiro dia da semana.
5. Primeira semana do ano
- É opcional
- Tipo: - Numérico ou Texto.
- Ele especifica o dia que é usado como a primeira semana do ano.
- Se esse argumento ou parâmetro for omitido, ele assumirá 1º de janeiro (vbFirstJan1) como a primeira semana do ano.
Como ativar a guia do desenvolvedor no Excel?
A guia do desenvolvedor é obrigatória na faixa de opções do Excel para iniciar e gravar macro VBA. Abaixo estão as diferentes etapas para habilitar a guia desenvolvedores no Excel VBA:
Etapa 1: Vá para a guia do menu Arquivo .
Etapa 2: no menu Arquivo, clique em Opções, situado na última das opções disponíveis da lista, no menu.
Etapa 3: clique em Personalizar fita para acessar as opções de personalização da fita.
Etapa 4: aqui nas opções de personalização, você pode ver a opção Desenvolvedor . Marque esta opção para que ela seja ativada na faixa principal do excel e possa ser acessada facilmente. Clique em OK depois de verificar a opção Desenvolvedor.
Assim que você clicar em OK, poderá ver a guia Desenvolvedor ativa no menu da faixa de opções do Excel com várias opções disponíveis em. Veja a imagem abaixo.
Como usar a função DateDiff no Excel VBA?
Abaixo estão as diferentes etapas para usar a função DateDiff no Excel VBA:
Você pode fazer o download deste modelo do VBA DateDiff Excel aqui - Modelo do VBA DateDiff ExcelExemplo 1
Neste exemplo, siga as etapas abaixo para usar a função DateDiff no VBA:
Etapa 1: primeiro crie um nome de macro.
Código:
Sub bb () End Sub
Etapa 2: duas variáveis são definidas como data e data atribuída a elas.
Código:
Sub bb () Dim dt1 como data Dim dt2 como data dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 19/19/2019 11:00:00 # End Sub
Etapa 3: escreva a sintaxe da função Datediff usando o argumento necessário e atribua o mesmo através da caixa de mensagem do VBA.
Código:
Sub bb () Dim dt1 como data Dim dt2 como data dt1 = # 1/1/2010 9:00:00 AM # dt2 = # 19/04/2019 11:00:00 # MsgBox DateDiff ("h", dt1, dt2) End Sub
Etapa 4: execute o código pressionando a tecla F5 ou clicando no botão Play. Para que o resultado seja exibido na caixa de mensagem.
Exemplo 2
No exemplo abaixo, a função datatediff calcula o número de anos entre as duas datas “09/06/2016” e “16/12/2020”. Aqui, parâmetros opcionais não são levados em consideração.
Código:
Sub AA () 'Diferença de ano MsgBox DateDiff ("aaaa", "09/06/2016", "16/12/2020") End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 3
No exemplo abaixo, a função datatediff calcula o número de meses entre as duas datas ”09/06/2016” e “16/12/2020”. Aqui, parâmetros opcionais não são levados em consideração.
Código:
Diferença do mês do sub AA1 () 'MsgBox DateDiff ("m", "09/06/2016", "16/12/2020") End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 4
No exemplo abaixo, a função datatediff calcula o número de semanas entre as duas datas ”09/06/2016” e “16/12/2020”. Aqui, parâmetros opcionais não são levados em consideração.
Código:
Diferença de semanas do sub AA2 () 'MsgBox DateDiff ("ww", "09/06/2016", "16/12/2020") End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 5
No exemplo abaixo, a função “ datatediff ” calcula o número de quartos entre as duas datas ”09/06/2016” e “16/12/2020”. Aqui, parâmetros opcionais não são levados em consideração.
Código:
Diferença de trimestre do sub AA3 () 'MsgBox DateDiff ("q", "09/06/2016", "16/12/2020") End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 6
No exemplo abaixo, a função “ datatediff ” calcula o número de dias entre as duas datas ”09/06/2016” e “16/12/2020”. Aqui, parâmetros opcionais não são levados em consideração.
Código:
Diferença de dias do sub AA4 () 'MsgBox DateDiff ("d", "09/06/2016", "16/12/2020") End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 7
No exemplo abaixo, a função " datatediff " calcula o número de horas entre as duas datas e a hora "9:00 em 01/01/2010" e "11:00 em 19/04/04".
Código:
Sub bb1 () 'Calcule o número de horas entre 1/1/2010 9:00 e 19/2/2019 11:00 Dim dt1 como data Dim dt2 como data dt1 = # 1/1 / 2010 9:00:00 # dt2 = # 19/19/2019 11:00:00 # MsgBox DateDiff ("h", dt1, dt2) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 8
No exemplo abaixo, a função “ datatediff ” calcula o número de segundos entre as duas datas e horas ”9:00 em 01/01/2010” e “11:00 em 19/04/04”.
Código:
Sub bb2 () 'Calcule o número de segundos entre 1/1/2010 9:00 e 19/04/2019 04:00 Dim dt1 como data Dim dt2 como data dt1 = # 1/1 / 2010 9:00:00 # dt2 = # 19/19/2019 11:00:00 # MsgBox DateDiff ("s", dt1, dt2) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 9
No exemplo abaixo, a função “ datatediff ” calcula o número de minutos entre as duas datas e a hora ”9:00 em 01/01/2010” e “11:00 em 19/04/04”.
Código:
Sub bb3 () 'Calcule o número de minutos entre 1/1/2010 9:00 e 19/04/2019 04:00 Dim dt1 como data Dim dt2 como data dt1 = # 1/1 / 2010 9:00:00 # dt2 = # 19/19/2019 11:00:00 # MsgBox DateDiff ("n", dt1, dt2) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo # 10
Se o argumento for especificado como "w" (semanas), a função "Datediff" retornará o número da semana inteira entre as duas datas. Semanas parciais são ignoradas. No exemplo, a função " DateDiff " calcula o número de semanas inteiras entre as datas 01/01/2010 e 19/4/2019.
Código:
Sub bb4 () 'Calcule o número de semanas entre 1/1/2010 e 19/4/2010 Dim dt1 como data Dim dt2 como data dt1 = # 1/1/2010 # dt2 = # 19/04/2010 # MsgBox DateDiff ("w", dt1, dt2) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo # 11
Se o argumento for especificado como "ww" (semanas do calendário), a função "Datediff" fornecerá o número de semanas entre o início da semana que contém Data1 e o início da semana que contém Data2.
Código:
Sub bb5 () 'Calcule o número de semanas do calendário entre 1/1/2010 e 19/4/2019' Primeiro dia da semana = segunda-feira Dim dt1 como data Dim dt2 como data dt1 = # 1/1/2010 # dt2 = # 19/19/2019 # MsgBox DateDiff ("ww", dt1, dt2, vbMonday) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Exemplo 12
No exemplo abaixo, a função "datediff" é usada para datas "1/1/1990" e "1/1/1998"
Código:
Subcc () Dim dt1 como data Dim dt2 como data dt1 = # 1/1 / 1990 9:00:00 AM # dt2 = # 1/11/1998 11:00:00 # MsgBox ("linha 1:" & DateDiff ("h", dt1, dt2)) MsgBox ("linha 2:" & DateDiff ("s", dt1, dt2)) MsgBox ("linha 3:" & DateDiff ("n", dt1, dt2)) MsgBox ("linha 4:" & DateDiff ("d", dt1, dt2)) MsgBox ("linha 5:" & DateDiff ("m", dt1, dt2)) MsgBox ("linha 6:" & DateDiff ("q", dt1, dt2)) MsgBox ("linha 7:" & DateDiff ("w", dt1, dt2)) MsgBox ("linha 8:" & DateDiff ("ww", dt1, dt2)) MsgBox ("linha 9: "& DateDiff (" y ", dt1, dt2)) MsgBox (" linha 10: "& DateDiff (" aaaa ", dt1, dt2)) End Sub
Para executar o programa, pressione a aba “ F8 ” ou “ Run ”. O resultado será exibido na caixa de mensagem.
Em seguida, clique em " Ok " para obter o próximo resultado.
Conclusão
A função " DateDiff " ajuda a determinar quantos intervalos de tempo especificados existem entre duas datas e horários especificados.
Artigos recomendados
Este é um guia para o VBA DateDiff. Aqui discutimos como usar a função DateDiff no Excel VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -
- Matriz de declaração do VBA (exemplos)
- Guia completo do VBA on Error
- Desproteger método de planilha no VBA
- Colunas VBA | Modelo do Excel
- Ambiente VBA