Dokumentende/einen Durchlauf der Suchfunktion in Word erkennen
VBA in Word 2000
Hallo
Ich schreibe gerade an einem Macro was anhand von bestimmten Platzhaltern die vorher markiert wurden Änderungen an einer Word Datei vornimmt (Werte aus andern Dateien holt, Umformatierungen vornimmt und so). Das an sich funktioniert auch ohne Probleme.
Nun würde ich gerne eine Funktion darüberlegen die mir mit Hilfe der Suchfunktion von Word das ganze Dokument durchgeht und eben immer wenn eine bestimmte Kennung (hier "<@>") gefunden wird bei dieser die Änderung vornimmt.
Die Suche an sich sieht bei mir folgendermaßen aus:
'Suche nach "<@>"
Selection.Find.ClearFormatting
With Selection.Find
.Text = "<@>"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
'Änderung hier vornehmen
Call DoChanges
Um das ganze herum würde ich nun gerne eine Schleife legen die das solange wiederholt bist einmal das ganze Dokument durchgegangen wurde und dann von alleine beendet wird.
Wie bekomme ich das am besten hin? Gehts das überhaubt mit der Suchfunktion so oder muß ich da was selbst schreiben? Wie kann ich erkennen ob ich einmal das Dokument durchlaufen habe (alternativ reicht auch das Dokumentende als Abbruchkriterium zu erkennen). Gibt es dafür eine Bestimmte Variable die ich prüfen kann?
Danke im Voraus
miniversum
Hallo
Ich schreibe gerade an einem Macro was anhand von bestimmten Platzhaltern die vorher markiert wurden Änderungen an einer Word Datei vornimmt (Werte aus andern Dateien holt, Umformatierungen vornimmt und so). Das an sich funktioniert auch ohne Probleme.
Nun würde ich gerne eine Funktion darüberlegen die mir mit Hilfe der Suchfunktion von Word das ganze Dokument durchgeht und eben immer wenn eine bestimmte Kennung (hier "<@>") gefunden wird bei dieser die Änderung vornimmt.
Die Suche an sich sieht bei mir folgendermaßen aus:
'Suche nach "<@>"
Selection.Find.ClearFormatting
With Selection.Find
.Text = "<@>"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
'Änderung hier vornehmen
Call DoChanges
Um das ganze herum würde ich nun gerne eine Schleife legen die das solange wiederholt bist einmal das ganze Dokument durchgegangen wurde und dann von alleine beendet wird.
Wie bekomme ich das am besten hin? Gehts das überhaubt mit der Suchfunktion so oder muß ich da was selbst schreiben? Wie kann ich erkennen ob ich einmal das Dokument durchlaufen habe (alternativ reicht auch das Dokumentende als Abbruchkriterium zu erkennen). Gibt es dafür eine Bestimmte Variable die ich prüfen kann?
Danke im Voraus
miniversum
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34900
Url: https://administrator.de/contentid/34900
Ausgedruckt am: 21.11.2024 um 13:11 Uhr
1 Kommentar