VBA Função CDate – Converter Texto em Dados
Este breve tutorial demonstrará como converter um texto em uma data no VBA.
As datas no Excel são armazenadas como números e, em seguida, formatadas para serem exibidas como uma data. O dia 1 no mundo do Excel foi 1º de janeiro de 1900 (padrão do Windows) ou 1º de janeiro de 1904 (padrão do Macintosh), o que significa que 5 de agosto de 2021 é o dia 44413 desde 1º de janeiro de 1900. Para converter uma cadeia de caracteres em uma data no Excel, primeiro precisamos converter a cadeia de caracteres em um número e, em seguida, converter esse número na data.
Função CDate
Podemos usar uma função chamada CDate no VBA para converter uma cadeia de caracteres em uma data.
Sub ConverterData()
Dim dte As Single
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Como declaramos uma variável numérica (dte como Single), a caixa de mensagem retornará o número que se refere à data inserida.
É importante que digitemos o ano usando todos os 4 dígitos do ano (ou seja, 2020 e não apenas 20), caso contrário, o número retornado poderá não ser o esperado. O Excel não interpreta a parte do ano da data – isso é controlado pelo Painel de Controle do nosso PC.
Entretanto, se declararmos as variáveis como uma variável de data, a caixa de mensagem retornará o número convertido em uma data.
Sub ConverterData()
Dim dte As Date
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Podemos dar um passo adiante e formatar a data de acordo com o tipo de formato de data que gostaríamos de ver.
Sub ConverterData()
Dim dte As String
Dim strD As String
strD = "05/10/2020"
dte = Format(CDate(strD), "dd mmmm yyyy")
MsgBox dte
End Sub
Neste exemplo, estamos convertendo a string em uma data e, em seguida, novamente em uma string!
Se omitirmos totalmente o ano, o Excel assumirá o ano atual.