08. november 2003 - 12:48Der er
15 kommentarer og 1 løsning
Direkte ændring og makro giver forskellig resultat
I et regneark importeret fra Navision forekommer en dato-kolonne formateret som tekst (med foranstillet '). Det ændrer jeg ved at multiplicere med 1 og definere kolonnen som Dato. Det fungerer fint.
Gør jeg det samme via en makro (eneste forskel er at jeg beder makroen finde det aktuelle Range, hvilket ser korrekt ud) så kan jeg se, at ikke alle celler i området ændres til en dato-værdi, og derfor ikke i næste trin formatteres korrekt som dato. Det drejer sig omtrent om 18000 rækker.
Det er lidt svært at forklare, når man hverken kender data eller kode :-)
Umiddelbart bør den samme operation udført på samme type data give samme resultat overalt. Der er altså to muligheder, som jeg ser det. Enten er dine data faktisk ikke ens i udgangspunktet, eller også er din kode forkert.
Endenlig kan der selvfølgelig være en fejl i Excel.
Hvis du ganger med 1 i din makro, kan det godt gå galt, fordi makroen opfatter data anderledes end regenarket selv gør. Du kan evt prøve at bruge denne kode til at ændre data, når du har fundet dit range:
For Each c In ActiveSheet.Range("a1:a18000").Cells c.Value = CDate(c.Value) Next c
Ranget skal erstattes med det, du har fundet tidligere.
Det vil ikke virke, da Excel ikke opfatter "." som et dato skilletegen, men som et tidsskilletegn. I så fald bliver det hele lavet om til klokkeslæt, fx 10:03:45 i stedet for 10-03-1945
Øv, det betyder vel, at jeg er nødt til at erstatte alle . med - for at det fungerer. Skal det gøres med en løkke eller er der en funktion der kan klare det og som kan køres fra en makro?
For Each c In ActiveSheet.Range("a1:a3").Cells c.Value = c.Value Cells.Replace What:=".", Replacement:="-", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False c.Value = CDate(c.Value) Next c
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.