Finne Sitert tekst i VBA

May 11  by Eliza

Jennifer trenger en måte, i en makro, for å finne en streng omgitt av enten smart eller rette anførselstegn (eller en blanding av de to). Hun kan ikke synes å finne den riktige blandingen av kommandoer for Finn-metode for å finne alle forekomster av slik tekst i alle versjoner av Word.

Det er viktig å være klar over hva som blir søkt. Forutsetningen i dette tipset er at makroen krever til du søke etter en bestemt streng i anførselstegn, ikke noen streng i anførselstegn. For eksempel, i et dokument som inneholder to siterte strenger som "min sitert tekst" og "mer sitert tekst," du bare ønsker å finne en av de strengene som du kjenner teksten, på forhånd, ikke begge strengene .

I dette tilfellet er det helt fint å bruke Finn-metoden, som du noterer. Spørsmålet er hvordan vi skal tilrettelegge muligheten for både smarte sitater og rette anførselstegn i hva du søker. Heldigvis, Finn-metoden, som standard, matcher både rette og smarte sitater om hverandre. Hovedpoenget er å vite hvordan du angir at du vil anførselstegnene inkludert i søket. Følgende kodebiten skal gjøre triks:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Med Selection.Find
.Text = "" "Min sitert tekst" ""
.Format = False
.MatchWildcards = False
Avslutt med
Selection.Find.Execute

Nøkkelen i denne koden er hvordan informasjonen er tilordnet .Text eiendom. Legg merke til at uansett hva du søker etter (i dette tilfellet "min siterte teksten") er omgitt av tre sitater på hver side. Grunnen til dette er ganske uforståelige: Strengen du søker etter må vedlegges anførselstegn; dette er nødvendig av VBA. Dette er vist her:

"Min sitert tekst"

Siden du vil ha en faktisk sitat karakter i begynnelsen av hva du søker, må du ta med en annen anførselstegn som en "skilletegn" for å indikere at du vil finne den anførselstegn karakter. Dette betyr at det er nå tre anførselstegn i begynnelsen:

"" "Min sitert tekst"

Det samme ekstra-sitat-mark-as-skilletegn teknikk gjelder også til slutten av strengen, slik at du ender opp med det som er vist i kodebiten. Når koden kjøres, Word pliktskyldigst finner strengen, omgitt av en blanding av rette eller smarte anførselstegn, som ønsket.

Det bør også bemerkes at denne tilnærmingen fungerer bare hvis du gjør et vanlig søk, med .MatchWildcards eiendom satt til False.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (11639) gjelder for Microsoft Word 2007 og 2010. Du kan finne en versjon av dette tipset for den eldre menygrensesnittet i Word her: Finne Sitert tekst i VBA .