Hallo,
mein Code durchsucht einen Absatz (via Range) nach einem Wort (Z.B. "Farbe"). Nach dem Fund wird das Wort hervorgehoben, Range.Start wird hinter den Suchbegriff verschoben, Range.End wieder auf das Ende des Absatzes. Mit Do … Loop wird solange gesucht, bis nichts mehr gefunden wird (siehe Code).
Zwei Probleme, wenn der gesuchte Begriff innerhalb eines Index-Eintrages steht (z.B. { XE "Farben" }):
1. Hier soll der Begriff natürlich nicht hervorgehoben werden. Wie kann ich feststellen, dass mein Range innerhalb eines Feldes liegt? (Range.Fields.count ist null, weil das Feld nicht eingeschlossen ist. Range.Font.Hidden ist nicht True, da der Index-Eintrag nicht ausgeblendet ist im Sinne einer Zeichenformatierung.)
2. Wie kann ich Range.Start hinter die letzte Klammer des Feldes "}" setzen? Tue ich das nicht, wird nicht nur der Teil des Feldes hinter meinem Suchauftrag als neuer Suchbereich gewählt, sondern automatisch das gesamte Feld. Die Suchroutine findet wieder denselben Begriff und das Programm läuft sich tod.
Natürlich kann ich eine Funktion definieren, die alle Felder des Absatzes durchzählt und testen, ob mein Suchbegriff innerhalb steht. Aber ich hoffe, es gibt eine einfachere Lösung.
Vielen Dank im Voraus.
mein Code durchsucht einen Absatz (via Range) nach einem Wort (Z.B. "Farbe"). Nach dem Fund wird das Wort hervorgehoben, Range.Start wird hinter den Suchbegriff verschoben, Range.End wieder auf das Ende des Absatzes. Mit Do … Loop wird solange gesucht, bis nichts mehr gefunden wird (siehe Code).
Zwei Probleme, wenn der gesuchte Begriff innerhalb eines Index-Eintrages steht (z.B. { XE "Farben" }):
1. Hier soll der Begriff natürlich nicht hervorgehoben werden. Wie kann ich feststellen, dass mein Range innerhalb eines Feldes liegt? (Range.Fields.count ist null, weil das Feld nicht eingeschlossen ist. Range.Font.Hidden ist nicht True, da der Index-Eintrag nicht ausgeblendet ist im Sinne einer Zeichenformatierung.)
2. Wie kann ich Range.Start hinter die letzte Klammer des Feldes "}" setzen? Tue ich das nicht, wird nicht nur der Teil des Feldes hinter meinem Suchauftrag als neuer Suchbereich gewählt, sondern automatisch das gesamte Feld. Die Suchroutine findet wieder denselben Begriff und das Programm läuft sich tod.
Natürlich kann ich eine Funktion definieren, die alle Felder des Absatzes durchzählt und testen, ob mein Suchbegriff innerhalb steht. Aber ich hoffe, es gibt eine einfachere Lösung.
Vielen Dank im Voraus.