Discussion:
einzelne Section durchsuchen
(zu alt für eine Antwort)
inge olufs
2011-03-18 21:10:27 UTC
Permalink
hallo leutz,

ich bin offenbar zu dusselig, eine einzelne section zu durchsuchen :-
( die suche stoppt einfach nicht am ende der section, sondern macht
munter bis zum ende des dokuments weiter.

vielleicht kann mir jemand auf die sprünge helfen?
gesucht hab ich, aber wohl nicht mit den richtigen begriffen, weil ich
nix passendes gefunden habe.

------------------------
Set oRng = oDoc.Sections(5).Range
With oRng.Find
.ClearFormatting
.Style = wdStyleHeading2
.Forward = True
.Text = ""
Do
.Execute
If Not .Found Then Exit Do

Debug.Print oRng.Text
--> oRng.Collapse wdCollapseEnd
--> der hinweis brachte leider auch nichts
Loop
End With
------------------------

eigentlich umfasst das range-objekt doch nur die zugewiesene section.
warum stoppt die suche also nicht?

danke schon mal für die unterstützung.
inge
W.Jahn
2011-03-19 10:12:17 UTC
Permalink
Am 18.03.2011 22:10, schrieb inge olufs:

Versuch mal

.wrap = wdFindStop


Wolfram
inge olufs
2011-03-19 15:21:00 UTC
Permalink
Post by W.Jahn
Versuch mal
.wrap = wdFindStop
danke wolfram, aber das nutzt leider nichts.

OH: Legt bei einer Suche, die nicht am Dokumentanfang begonnen wurde,
die weitere Vorgehensweise nach Erreichen des Dokumentendes fest

inge
W.Jahn
2011-03-19 17:59:33 UTC
Permalink
Post by inge olufs
danke wolfram, aber das nutzt leider nichts.
OH: Legt bei einer Suche, die nicht am Dokumentanfang begonnen wurde,
die weitere Vorgehensweise nach Erreichen des Dokumentendes fest
Hast Recht, geht nicht.
Aber in der OH - zumindest von Word 2007 - steht auch, warum:
--------
"Wenn Sie über das Range-Objekt zum FindObjekt gelangt sind, wird die
Auswahl nicht geändert, wenn der Text gefunden wird, der mit den
Suchkriterien übereinstimmt, aber das Range-Objekt wird neu definiert.
Das folgende Beispiel sucht das nächste Auftreten des Worts "blue" im
aktiven Dokument. Wenn "blue" im Dokument gefunden wird, wird myRange
neu definiert und "blue" wird fett formatiert.

Set myRange = ActiveDocument.Content
myRange.Find.Execute FindText:="blue", Forward:=True
If myRange.Find.Found = True Then myRange.Bold = True"
--------

Na das ist ja sehr schön unituitiv. Mir wär ein foundRange Member am
Find lieber.

Also hilft es nur von Hand sie Section zu prüfen nach dem Suchen:


Set oRng = ActiveDocument.Sections(5).Range
With oRng.Find
.ClearFormatting
.Style = wdStyleHeading2
.Forward = True
.Text = ""
.Wrap = 0
Do
.Execute
If Not .Found Then Exit Do

If oRng.Sections.Last.Index > 5 Then Exit Do

Debug.Print oRng.Text
Loop
End With


Schönes Rest-Wochenende

Wolfram
inge olufs
2011-03-20 15:36:58 UTC
Permalink
Post by W.Jahn
Hast Recht, geht nicht.
[snip]

das ist richtig, und wenn ich denn lesen könnte, wäre es mir
aufgefallen :-(

da ich nicht wußte, ob sich hier in der group, die es ja offiziell
nicht mehr gibt, noch etwas tut, habe ich die frage auch in
microsoft.answers gepostet. dort erhielt ich von christian (freßdorf)
gestern abend den entscheidenden hinweis:

Do While .Found And oRng.InRange(oDoc.Sections(i).Range)

die property InRange habe ich in der hilfe übersehen. sie bewirkt
genau das, was ich brauche - ebenso wie dein oRng.Sections.Last.Index
Post by W.Jahn
5.
auch an dich ein herzliches dankeschön dafür, daß du mir blindfisch
auf die sprünge geholfen hast!

inge

Lesen Sie weiter auf narkive:
Loading...