String VBA até a data

String VBA do Excel até a data

Em Vba há um método através do qual podemos converter uma determinada string em uma data, e o método é conhecido como função CDATE em vba, esta é uma função embutida em VBA e as partes necessárias para esta função é primeiro converter a string para um número e então convertemos o número fornecido em uma data. O formato do resultado depende apenas do formato da data do sistema.

Um dos problemas comuns que todos enfrentamos com o Excel é “Data e Hora” e muitas vezes são armazenados como valores de texto e passam despercebidos inicialmente. Mas quando eles forem obrigados a usar esse tempo, saberemos que esses valores estão armazenados como texto e não saberemos como lidar com eles. “Data e hora” são duas coisas combinadas em um elemento, mas uma vez que esses valores são armazenados como valores de texto, é difícil trabalhar com eles.

Como converter valores de string para data?

Você pode baixar este modelo de string VBA atualizado aqui - modelo Excel de string VBA atualizado

Exemplo 1

Depois que a variável VBA for declarada e atribuída como String, qualquer coisa atribuída a essa variável será tratada apenas como string. Para obter um exemplo, veja o código abaixo.

Código:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox k End Sub 

Na variável de código “k” acima definida como tipo de dados “String” e para esta variável atribuímos o valor como “10-21”.

Ok, vamos rodar o código e ver o que temos na caixa de mensagem do VBA.

Obtemos o valor como 10-21 apenas, mas geralmente esses valores são uma data, não valores de string. Portanto, embora o tipo de dados atribuído seja “String”, ainda podemos converter para a data usando a função de conversão de tipo de dados CDATE VBA.

Código:

 Sub String_To_Date () Dim k As String k = "10-21" MsgBox CDate (k) End Sub 

Acima, antes de mostrarmos o resultado da variável “k” na caixa de mensagem, atribuímos a função CDATE. Um pequeno ajuste é feito, vamos ver quão grande é o impacto que causa.

Agora veríamos o resultado como “Data” e não mais como valor “String”.

Exemplo # 2

Agora, olhe o código abaixo para um exemplo.

Código:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox k End Sub 

Neste ponto no tempo, o código acima mostraria o resultado como “43599” conforme atribuímos acima.

Mas assim que usarmos a função CDATE, ela será convertida para o valor de data.

Código:

 Sub String_To_Date () Dim k As String k = 43599 MsgBox CDate (k) End Sub 

O resultado após a aplicação da função CDATE é o seguinte.

Como o Excel armazenou a data como números de série, nosso número de série atribuído 43599 é igual à data de 14/05/2019 quando o formato de data é aplicado.

Também podemos aplicar o formato à data como “DD-MMM-AAAA” para ler a data com precisão.

Código:

 Sub String_To_Date1 () Dim k As String Dim DateValue As Date k = 43599 DateValue = CDate (k) MsgBox Format (DateValue, "DD-MMM-YYYY") End Sub 

Acima, declarei uma variável extra para armazenar o resultado. Para esta variável, apliquei a função de conversão CDATE.

A seguir, usei a função FORMAT para aplicar o formato “DD-MMM-AAAA” e o resultado será como mostrado abaixo.

Com isso, podemos ler claramente a parte do dia e a parte do mês. Também depende do formato de data do seu sistema no excel, já que o formato de data do meu sistema era “MM-DD-AAAA” estava sendo mostrado assim, mas isso não deve ser um obstáculo para a formatação.

Exemplo # 3

Agora veremos como as datas são formatadas como valores de texto nas células da planilha. Abaixo está a imagem das datas armazenadas como texto em uma planilha.

Na coluna A de A2 a A12, temos valores de data olhando, mas quando olhamos para a guia de formato, ela mostra o formato “Texto”. Agora precisamos converter esses valores de texto em data.

Abaixo está o código que escrevi para converter os valores de data formatados em texto em datas reais.

Código:

 Sub String_To_Date2 () Dim k As Long 'Os dados estão em mais de uma célula, portanto, é necessário percorrer cada célula' Abrir For Loop For k = 2 a 12 'Os dados começam na 2ª linha e terminam na 12ª linha, então 2 a 12 Células (k, 2) .Valor = CDate (Células (k, 1) .Valor) Próximo k End Sub 

Se você executar o código, ele nos fornecerá o resultado abaixo.

Coisas para lembrar

  • CDATE é uma função de conversão de tipo de dados, mas pode ser usada para converter a data armazenada da string VBA em valores de data reais.
  • O resultado do formato da função CDATE depende apenas do formato da data do sistema.
  • As datas são armazenadas como números de série no Excel, então a formatação é necessária para mostrá-las como datas.