Opplyser Hver tusende Character

November 29  by Eliza

Hakan trenger en makro som teller tegn (uten mellomrom) i et word-dokument og fremhever hver 1000th brev. Opprette en slik makro er ganske grei-du bare trenger å undersøke alle tegnene i et dokument, i sin tur, og bare telle de som ikke er mellomrom. Følgende er en enkel liten makro som vil gjøre nettopp det:

Sub CountThousands1 ()
Dim J Som Long
Dim X As Integer

X = 0
Med ActiveDocument
For J = 1 Til .Characters.Count
Hvis .Characters (J) <> "" Then X = X + 1
Hvis X = 1000 Da
.Characters (J) .Velg
Selection.Range.HighlightColorIndex = wdYellow
X = 0
Pip
End If
Neste J
Avslutt med
End Sub

Makroen er enkel nok; det undersøker tegn samlingen, som inneholder alle de individuelle tegn i et dokument. Problemet med makro er at den er langsom svært langsom. Ord er ikke veldig effektiv i å undersøke individuelle tegn på denne måten. (Det virker som hver gang du refererer til et medlem av den Tegn samling, må Word undersøkt alle tegnene fra begynnelsen av dokumentet, all over again.)

En annen tilnærming er å bare gå gjennom dokumentet, utvide et utvalg til du kommer til 1000 ikke-mellomromstegn.

Sub CountThousands2 ()
Dim X As Integer
Dim sRAW As String
Dim sProc As String

Selection.MoveRight Enhet: = wdCharacter, Count: = 1000, Extend: = wdExtend
Mens Len (Utvalg) = 1000
sRAW = Selection
sProc = Erstatt (sRAW, "", "")
X = 1000 - Len (sProc)
Mens X> 0
Selection.MoveRight Enhet: = wdCharacter, Count: = X, Extend: = wdExtend
sRAW = Selection
sProc = Erstatt (sRAW, "", "")
X = 1000 - Len (sProc)
Wend
Selection.Collapse Regi: = wdCollapseEnd
Selection.MoveLeft Enhet: = wdCharacter, Count: = 1, Extend: = wdExtend
Selection.Range.HighlightColorIndex = wdYellow
Selection.Collapse Regi: = wdCollapseEnd
Selection.MoveRight Enhet: = wdCharacter, Count: = 1000, Extend: = wdExtend
Wend
End Sub

Start denne makroen med innsettingspunktet på begynnelsen av dokumentet. Makroen da griper tusen tegn, tildeler at utvalget til en variabel (sRAW), skaper en variabel som har alle mellomrom fjernet fra det (sProc) og deretter tall lengden på sProc. Hvis det er mindre enn 1,000, da valget er forlenget med imidlertid mange tegn som det var korte og prosessen gjentas. Når utvalget inneholder 1000 ikke-mellomromstegn, så høydepunktet er satt og makro går videre til neste blokk med tegn.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (7870) 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: Opplyser Hver tusende Character.