Ordtelling vises feil når du bruker VBA-egenskapen "Ord"


Hvis en Microsoft Word 97-versjon av denne artikkelen, kan du se 159791 .

Hvis en Microsoft Word 98 Macintosh Edition-versjon av denne artikkelen, kan du se 183870 .

Hvis en Microsoft Word 2000-versjon av denne artikkelen, kan du se 212705 .

Symptomer


Når du bruker Microsoft Visual Basic for Applications (VBA), ord -egenskapen til å returnere en Ordtelling i et Microsoft Word-dokument, vises antall ord som er returnert til å være unøyaktig.

Årsak


Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre, men de endrer ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov. For mer informasjon, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

290140 hvordan du kan kjøre eksempelkode for Office XP-programmene fra Knowledge Base-artikler

Ord -egenskapen returnerer en samling som representerer alle ordene i et område, utvalget eller dokumentet. Samlingen inneholder alle avmerkinger tegnsetting og avsnitt i det merkede området eller dokumentet.

For eksempel hvis du prøver å bestemme antall ord i følgende tre linjer med tekst

Dette er x antall ord.
Dette er x antall ord.
Dette er x antall ord.
ved hjelp av egenskapen ord som følger
Sub GetWords()
MsgBox ActiveDocument.Words.Count

End Sub

Resultatet er 24 ord.

Løsningen


Hvis du vil returnere bare antall ord i et dokument eller et område, unntatt avsnittsmerker og tegnsetting, bruker du metoden ComputeStatistics i stedet for ord -egenskapen.

ComputeStatistics -metoden returnerer et antall ord som ikke inneholder avsnittsmerker eller tegnsetting. Ved hjelp av eksempelteksten fra avsnittet "Årsak", returnerer følgende kode i ComputeStatistics -metoden en telling av 18 ord:

Sub GetWords()
MsgBox ActiveDocument.Range.ComputeStatistics(wdStatisticWords)

End Sub

Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

241333 Word count-makro til å telle ord i et merket område

Hvis du vil ha mer informasjon om hvordan du får hjelp med Visual Basic for Applications, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

226118 liste over ressurser som er tilgjengelige for å hjelpe deg med å lære Visual Basic for Applications programming