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.
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 :-)
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?