Ako ste si už všimli, sága vlastných funkcií a makier pokračuje. Dnes som sa zamyslel nad otázkou, ako nám môžu slová s diakritikou skomplikovať život.
Určite ste aspoň raz museli ručne kontrolovať názvy firiem, ktoré kedysi zadali účtovníčky ručne do systému a zrazu, keď finalizujete report, tak sa vám v kontingenčnej tabuľke zbytočne zobrazí napríklad: Peter Tabiš s.r.o. a Peter Tabis s.r.o.
Tým pádom vám “totály” nesedia a máte v tom bordel. To všetko len preto, lebo náš Slovenský spolu s Českým jazykom obsahujú písmenka typu é, í, á atď.
Ja som si pripravil zoznam znakov, ktoré sa najviac vyskytujú:
Tieto znaky som spojil a použil v nasledujúcom skripte:
Function CistyText(SpinavyText As String)
'funkcia, ktorá vyčistí text od diakritiky
Dim Stare As String
Dim Nove As String
Dim i As Integer
'nadefinované konštanty, v ktorých sú spojené znaky s diakritikou a bez nej
Const SpinavePismenka = "áćĆĎéÉíĹĺńŃóÓŕśŔŚťúÚýźŹÁčČďěĚÍĽľňŇôÔřšŘŠŤůŮÝžŽ"
Const CistePismenka = "acCDeEiLlnNoOrsRStuUyzZAcCdeEiLlnNoOrsRSTuUYzZ"
'pre každý znak z SpinavePismenka nájde alternatívny z CistePismenka a ak sa nachádza v SpinavyText tak ho nahradí
For i = 1 To Len(SpinavePismenka)
Stare = Mid(SpinavePismenka, i, 1)
Nove = Mid(CistePismenka, i, 1)
SpinavyText = Replace(SpinavyText, Stare, Nove)
Next
'Vráti očistený text
CistyText = SpinavyText
End Function
Výsledok v praxi vyzerá nasledovne:
Takto vyčistený text si môžete upraviť buď na všetky malé alebo veľké písmená. Tým pádom by sa mala eliminovať akákoľvek manuálne vytvorená chyba a reporty by mali fungovať ako hodinky
Sledujte Ďalšie VBA vychytávky a nezabudnite na FB skupinu
Žiadne komentáre:
Zverejnenie komentára
Poznámka: Komentár môže zverejniť iba člen tohto blogu.