CONVERTER HORA DE TEXTO EM HORA COMPLETA
Pessoal, boa tarde!
Estou tentando importar um arquivo do Excel (xls ou xlsx) para um banco de dados, mas existe um campo de com horas completas (hhh:mm:ss) que esta dando erro.
Quanto tento converter o campo para hora através do CDate ou Format alguns valores estão recebendo uma data negativa.
Um exemplo é uma célula que esta exibindo as horas no formato completo (28:26:23), dentro da célula, fora a formatação, o valor dentro da célula é “01/01/1900 04:26:24†quando formato o campo como numero e uso o CDate recebo a data “31/12/1899 04:26:24â€!
Esse é o trecho do código que converte o campo:
Dt = CDate(CDbl(Trim(wb.Range([Ô]D[Ô] & i))))
Alguém já teve algum problema parecido? Conhecem alguma solução?
Estou tentando importar um arquivo do Excel (xls ou xlsx) para um banco de dados, mas existe um campo de com horas completas (hhh:mm:ss) que esta dando erro.
Quanto tento converter o campo para hora através do CDate ou Format alguns valores estão recebendo uma data negativa.
Um exemplo é uma célula que esta exibindo as horas no formato completo (28:26:23), dentro da célula, fora a formatação, o valor dentro da célula é “01/01/1900 04:26:24†quando formato o campo como numero e uso o CDate recebo a data “31/12/1899 04:26:24â€!
Esse é o trecho do código que converte o campo:
Dt = CDate(CDbl(Trim(wb.Range([Ô]D[Ô] & i))))
Alguém já teve algum problema parecido? Conhecem alguma solução?
não sei como você tentou usar o Format mas tente o seguinte
Dt = Format(Cdate(wb.Range([Ô]D[Ô] & i)),[Ô]mm/dd/yyyy hh:nn:ss[Ô])
Não deu certo...
então colega o problema esta relacionado ao valor da hora, este problema se da pelo fato de não haver hora maior que 23:59:59, a partir de deste valor, o sistema pega data base da maquina e vai somando estas horas ao dia, exemplo
se você lançar 28:00:00 o sistem a entende que é 24:00:00 + 04:00:00 do dia seguinte o que gera a confusão
como solucionar este problema, e converter o campo para texto
se você lançar 28:00:00 o sistem a entende que é 24:00:00 + 04:00:00 do dia seguinte o que gera a confusão
como solucionar este problema, e converter o campo para texto
Marcelo, bom dia!
Obrigado pela força!
Sem sucesso
Formatei o campo manualmente e também usei este código para formatar [Ô]ThisWorkbook.Sheets(1).Range([Ô]A1[Ô]).NumberFormat = [Ô]@[Ô] e não deu.
Estranho que na célula o valor transforma-se em 1,16666666666667, mas continua sendo convertido para o ano 1899.
Entendo seu apontamento na questão da forma como a hora é processada no vba, mas na teoria o sistema inicia em 01/01/1900 00:00:00. Assim, indo para 31/12/1899 04:00:00 indica que o resultado foi negativo.
Tentei em duas maquinas diferentes, a de casa e do serviço, e o resultado foi o mesmo.
Você conseguiu realizar este teste?
Obrigado pela força!
Sem sucesso
Formatei o campo manualmente e também usei este código para formatar [Ô]ThisWorkbook.Sheets(1).Range([Ô]A1[Ô]).NumberFormat = [Ô]@[Ô] e não deu.
Estranho que na célula o valor transforma-se em 1,16666666666667, mas continua sendo convertido para o ano 1899.
Entendo seu apontamento na questão da forma como a hora é processada no vba, mas na teoria o sistema inicia em 01/01/1900 00:00:00. Assim, indo para 31/12/1899 04:00:00 indica que o resultado foi negativo.
Tentei em duas maquinas diferentes, a de casa e do serviço, e o resultado foi o mesmo.
Você conseguiu realizar este teste?
Tópico encerrado , respostas não são mais permitidas