Rydder opp tekst i en makro

May 16  by Eliza

Det har vært mange makroer som jeg har skrevet med den uttrykkelige hensikt å "rydde opp" tekst før du gjør noe annet med det. For eksempel å sette det i et nytt dokument eller lagre det i en tekstfil. Ofte denne prosessen er kjedelig, involverer undersøke hvert tegn i en tekststreng og deretter gjøre noen beslutning om hva du skal gjøre med det hvis karakteren er ikke innenfor et område på akseptable tegn.

VBA omfatter en interessant metode som kan brukes for å bidra til å rydde opp i teksten. Det kalles, passende nok, den CleanString metoden. Du bruker det som vist her:

sCleanedUp = Application.CleanString (Selection.Text)

Dette tilfellet setter sCleanedUp streng lik en "ryddet opp" versjon av den markerte teksten. Hva betyr det CleanString metoden gjøre? Den fjerner ikke-trykketegn i ANSI området 1 til 29, med unntak av 7, 9, 10 og 13. I tilfelle av ANSI karakter 7, fjernes med mindre den er innledet av tegn 13, i hvilket tilfelle Det er erstattet med en fane (ANSI 9). I tilfelle av ANSI tegnet 10, blir det erstattet med tegn 13 med mindre innledes med tegn 13, i hvilket tilfelle det er fjernet. Tegn 9 og 13 blir ikke endret.

En rekke andre tegn utenfor området 1 til 29 er også påvirket av CleanString metoden. ANSI tegn 31 (valgfri bindestrek), tegnet 172 (også en valgfri bindestrek), og tegnet 182 (den avsnittsmerket karakter) er alt fjernet. ANSI tegn 160 (non-breaking space), tegnet 176 (en annen non-breaking space), og tegnet 183 (en punkttegn) er hvert erstattet med mellomrom. Alle andre tegn er uendret.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (1460) gjelder for Microsoft Word 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Word (Word 2007 og senere) her: Rydder opp tekst i en makro.