Avatar billede hubertus Seniormester
16. oktober 2017 - 10:03 Der er 3 kommentarer og
1 løsning

dato udfordringer

et rigtigt mandagsproblem!
Jeg har en udfordring med følgende linje

Dato = Format(CDate(Dato), "dddd"), som skal give mig ugedagen.
Den er dim dato as string, og har tidligere virket upåklageligt. Nu er jeg begyndt at få en runtime error 13 - type mismatch på Cdate(Dato).

Hvad kan være årsagen til det? alternativt en anden måde at få ugedagen på er også velkommen.
Avatar billede hubertus Seniormester
16. oktober 2017 - 10:10 #1
Dato= "4.-Oct 2017 16:03"  , en dato som læses i en en celle i regnearket.
Avatar billede Dan Elgaard Ekspert
16. oktober 2017 - 11:27 #2
Jeg havde selv lignede problemer med 'CDate()' for nogle år siden, og fik på et LinkedIn forum fortalt, at 'CDate()' faktisk er en meget lidt 'robust' funktion, der især har problemer, hvis der er specialtegn i datoen, eller special tegn står efter hinanden - hvilket de gør i din variabel.

Et forslag kunne være, at lave dato strengen om til et genkendeligt dato format først:

Dato = Replace(WorksheetFunction.Trim(Replace(Replace(Left$(Dato,12),"."," "),"-"," "))," ","/")

Hvilket gerne skulle få din dato string til at blive til:
Dato = "4/Oct/2017" (Hvis jeg ellers har gjort det korrekt)

Derefter udskifter du månederne med tal:

Dato = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(UCase$(Dato), "JAN", 1), "FEB", 2), "MAR", 3), "APR", 4), "MAY", 5), "JUN", 6), "JUL", 7), "AUG", 8), "SEP", 9), "OCT", 10), "NOV", 11), "DEC", 12)

Hvilket gerne skulle få din dato string til at blive til:
Dato = "4/10/2017"

Og, nu kan 'CDate()' genkende datoen :-)
Avatar billede hubertus Seniormester
16. oktober 2017 - 11:36 #3
Hej Dan  - det virker helt perfekt, så tak for hjælpen :-)

Jeg har brugt min formel i flere år uden problemer før nu, så jeg er lidt nysgerrig efter at vide, hvad var der galt i mit dato format. kan du kaste lidt lys over det?
Avatar billede Dan Elgaard Ekspert
16. oktober 2017 - 12:19 #4
Niksen - mit bedste gæt er at en opdatering har ændret måde som CDate() fortolker teksten på - men, jeg ved det ikke...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester