Het vinden van geciteerde tekst in VBA

Jennifer heeft een manier, in een macro, naar een string, omringd door een slim of rechte aanhalingstekens (of een combinatie van de twee) te vinden. Ze kan niet schijnen om de juiste mix van opdrachten voor deZoekenmethode om alle instanties van die tekst vinden in alle versies van Word te vinden.

Het is belangrijk om duidelijk te zijn over wat er wordt gezocht te worden. De veronderstelling in deze tip is dat je de macro nodig heeft om u te zoeken naar een specifieke reeks aanhalingstekens, niet iedere string tussen aanhalingstekens. Bijvoorbeeld, in een document dat twee aanhalingstekens zoals "mijn geciteerde tekst" en bevat "meer geciteerde tekst," wilt u alleen een van de snaren waarvan u de tekst weet van tevoren, niet beide van de snaren te vinden .

In dit geval, het is gewoon fijn om te deZoekenmethode gebruiken, als je er rekening mee. De vraag is hoe je de mogelijkheid om zowel de slimme quotes en rechte aanhalingstekens in wat je zoekt tegemoet. Gelukkig deZoekenmethode, standaard, past zowel rechte en gekrulde aanhalingstekens door elkaar. Het belangrijkste punt is te weten hoe om aan te geven dat u wilt dat de aanhalingstekens opgenomen in de zoekopdracht. Het volgende stukje code moet het lukken:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Met Selection.Find
.text = "" "Mijn geciteerde tekst" ""
.Format = False
.MatchWildcards = False
End With
Selection.Find.Execute

De sleutel in deze code is de manier waarop informatie wordt toegewezen aan de eigenschap .Text. Merk op dat wat je zoekt (in dit geval, "mijn geciteerde tekst ') wordt omringd door drie offertes aan elke kant. De reden hiervoor is nogal geheimzinnig: De tekenreeks die u zoekt moet worden afgesloten met aanhalingstekens; dit wordt vereist door de VBA. Deze is hier te zien:

"Mijn geciteerde tekst"

Omdat je wilt een echte aanhalingsteken aan het begin van wat je zoekt, moet u een tweede aanhalingsteken bevatten als een "begrenzer" om aan te geven dat u wilt het aanhalingsteken karakter te vinden. Dit betekent dat er nu drie aanhalingstekens aan het begin:

"" "Mijn geciteerde tekst"

Dezelfde extra-citaat-mark-as-delimiter techniek geldt ook voor het einde van de string, zodat je uiteindelijk met wat er wordt getoond in het codefragment. Wanneer de code wordt uitgevoerd, Woord plichtsgetrouw vindt de string, omringd door een mix van rechte of gekrulde aanhalingstekens, zoals gewenst.

Ook moet worden opgemerkt dat deze aanpak werkt alleen als je aan het doen zijn een reguliere zoekmachine, met de eigenschap .MatchWildcards ingesteld op False.

WordTips is uw bron voor kosteneffectieve Microsoft Word training. (Microsoft Word is de meest populaire tekstverwerker in de wereld.) Deze tip (11.639) is van toepassing op Microsoft Word 2007 en 2010. U kunt een versie van deze tip voor de oudere menu-interface van Word hier vinden: Het vinden van geciteerde tekst in VBA .


© 2020 Quilcedacarvers.com | Contact us: webmaster# quilcedacarvers.com