Att hitta Citerad text i VBA

June 21

Jennifer behöver ett sätt, i ett makro, att hitta en sträng som omges av antingen smarta eller raka citattecken (eller en blandning av båda). Hon verkar inte kunna hitta rätt mix av kommandon för Find metod för att lokalisera alla förekomster av en sådan text i alla versioner av Word.

Det är viktigt att vara tydlig med vad som sökt. Antagandet i detta tips är att ditt makro kräver att du söka efter en specifik sträng omgiven av citattecken, inte någon sträng omgiven av citattecken. Till exempel i ett dokument som innehåller två citerade strängar som "my citerad text" och "mer citerade texten," du bara vill hitta en av strängarna som du känner till texten, i förväg, inte båda strängarna .

I detta fall är det bara bra att använda Sök metoden, som ni notera. Frågan är hur man rymma möjligheten att både smarta citat och raka citattecken i vad du söker. Lyckligtvis Find metoden, som standard, matchar både raka och smarta citat omväxlande. Den viktigaste punkten är att veta hur man ska ange att du vill citationstecken som ingår i sökningen. Följande kodavsnitt borde göra susen:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Med Selection.Find
.Text = "" "My citerad text" ""
.Format = False
.MatchWildcards = False
End Med
Selection.Find.Execute

Nyckeln i denna kod är hur informationen tilldelas egenskapen .Text. Observera att oavsett vad du söker efter (i det här fallet, "my citerad text") är omgiven av tre offerter på varje sida. Anledningen till detta är ganska svårbegripliga: Strängen du söker ska bifogas citationstecken; Detta krävs av VBA. Detta visas här:

"My citerad text"

Eftersom du vill ha en verklig citattecken i början av det du söker, måste du inkludera en andra citat varumärke som en "avgränsare" för att indikera att du vill hitta citattecken tecken. Detta innebär att det finns nu tre citationstecken i början:

"" "My citerad text"

Samma extra quote-mark-as-avgränsare teknik gäller även i slutet av strängen, så du sluta med vad som visas i kodavsnittet. När koden körs, Word finner plikttroget strängen, omgiven av valfri blandning av raka eller smarta citat, som önskat.

Det bör också noteras att denna metod fungerar bara om du gör en vanlig sökning, med egenskapen .MatchWildcards satt till False.

WordTips är din källa för kostnadseffektiv Microsoft Word utbildning. (Microsoft Word är det mest populära ordbehandlingsprogram i världen.) Detta tips (11639) gäller Microsoft Word 2007 och 2010. Du kan hitta en version av detta tips för den äldre menygränssnittet Word här: Söka Citerad text i VBA .