1
resposta

Erro no resultado da Função Ajusta Data

A função de ajustar data funcionou até a linha 13, depois disso ela passou a inverter as posições do dia e mês. Eu até tentei criar uma função apartada pra fazer essas linhas separadamente, mas está dando o mesmo erro.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oii, Vinicius! Tudo bem?

O bug pode ser gerado pela forma que a função fnAjustada pode estar interpretando as datas.

Como sugestão para tentarmos é modificar um pouco o código. Segue um exemplo:

Function fnAjustaData(pData As String) As Date
    Dim dia As String
    Dim mes As String
    Dim ano As String
    
    dia = Mid(pData, 9, 2)
    mes = Mid(pData, 6, 2)
    ano = Right(Mid(pData, 1, 4), 2)
    
    fnAjustaData = DateSerial(CInt(ano), CInt(mes), CInt(dia))
End Function

No código acima é extraído o dia, mês e ano separadamente da string de entrada. A função DateSerial é usada para criar uma data válida para que a data fique certa.

Faça o teste e observe se funciona como esperado. Espero que dê certinho.

Bons estudos, Vinicius!