Este tutorial demonstrará como obter a data de hoje no VBA.
Existem algumas maneiras de obter a data de hoje no código VBA, ou seja, usando o VBA Encontro() função ou o VBA Agora() funções.
Função Date ()
o Encontro() função nos permite atribuir a data de hoje a uma variável e, em seguida, exibir a data na janela imediata no Editor VBE para ver a data de hoje.
123 | Dim dtToday as DatedtToday = Date ()Debug.Print dtToday |
Como alternativa, podemos exibir a data em uma caixa de mensagem.
12345 | Sub TestDateDim dtToday as DatedtToday = Date ()Msgbox "A data de hoje é" & dtTodayEnd Sub |
Função Now ()
o Agora() A função funciona da mesma maneira que a função de data, mas inclui a hora.
12345 | Sub TestDate ()Dim dtToday As DatedtToday = Now ()MsgBox "A data de hoje é" & dtHodayEnd Sub |
Formatando datas com VBA
Em ambos os Encontro() e a Agora() funções, a data é formatada em um estilo padrão, conforme determinado pelas configurações em nosso PC. Podemos personalizar essa formatação usando o VBA Formato função. Como a função de formato retornará uma string, precisamos declarar um FRAGMENTO variável em vez de um ENCONTRO variável.
12345 | Sub TestDate ()Dim dtToday As StringdtToday = Formato (Data, "dd mmmm aaaa")MsgBox "A data de hoje é" & dtHodayEnd Sub |
Também podemos formatar o Agora() função para incluir a parte do tempo em um formato personalizado.
12345 | Sub FormatNow ()Dim dtToday As StringdtToday = Format (Now (), "dd mmmm aa hh: mm: ss am / pm")MsgBox dtTodayEnd Sub |
Comparando 2 datas com VBA
Também podemos usar a função Data para comparar a data de hoje com uma data diferente - podemos querer calcular quantos dias faltam para um evento! Podemos fazer isso usando o VBA DateDiff () função que retornará um número. Podemos, portanto, declarar umINTEIRO variável para armazenar o valor retornado.
123456789 | Sub TestDateDiff ()Dim dtToday As DateDim dtSomeDay As DateDim iDays As IntegerdtToday = DatedtSomeDay = "05/06/2021"iDays = DateDiff ("d", dtToday, dtSomeDay)MsgBox "Existem" & iDays & "dias entre as 2 datas"End Sub |
Como as datas são armazenadas como números, também poderíamos retirar a segunda data da primeira para obter a mesma resposta.
1 | iDays = dtToday - dtSomeDay |