Excel+VBA – rychlé přepínání psaní desetiných čárek

Jak pracuji s různými zdroji dat, mám někdy na vstupu data s desetinou čárkou, jindy s tečkou a při jejich kopírování z/do Excelu tak může dojít ke zničení těchto dat.

Např. předpokládejme, že máte standardně nastavený Excel a Windows s českým nastavením regionu, tj. oddělovač tisíců je mezera a desetinný oddělovač je čárka.

A teď si představte, že do takového Excelu vložíte data z nějakého amerického webu či dokumentu, kde jsou použity desetinné tečky.

Takže si představte, že vložíte hodnotu 1.9. Na první pohled si ničeho nevšimnete, vypadá to jako normální číslo, automaticky se to zarovná doprava. Jenže pak to číslo vynásobíte 2 a Excel vám napíše 4.5!

Problém je, že jste nevložili 1,9, ale 1. září (aktuálního roku), což je v interním počítání Excelu číslo 42248 (tolik dnů uplynulo od 1.1.1900). Takže vynásobením 2 jste do 84496 dnů, což je 4. května 2131, tedy zobrazeno jako krátké datum je to 4.5.

Proto používám jeden fígl – mám vytvořené malé makro s přiřazenou klávesovou zkratkou a s ní tak rychle přepínám mezi výchozím (českým) regionálním nastavením a mezi americkým.

Sub Prepnout()

 With Application
 .DecimalSeparator = "."
 .ThousandsSeparator = ","
 End With
 Application.UseSystemSeparators = Not Application.UseSystemSeparators
 
End Sub

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *