Text suchen und Seitenzahl ausgeben

Moderator: ModerationP

Text suchen und Seitenzahl ausgeben

Beitragvon TomWest » 06. Nov 2020, 07:53

Guten Morgen zusammen,
kann mir bitte jemand bei einer Codezeile helfen?
Mit folgendem Code durchsuche ich ein ganzes Word-Dokument (nach mehreren in einer Datenbank stehenden Schlagworten) und liste die Treffer in einer Listbox auf.
Dabei soll u. a. auch die Seitennummer ausgegeben werden, damit ich auf Wunsch per Doppelklick auf die Lbx-Zeilen die Seiten ansteuern kann.
Nun geht es um die physische Seitennummer. Ich kenne bislang nur die Möglichkeit die mit Selection.Information(wdActiveEndPageNumber) zu ermitteln, aber eigentlich will ich die Treffer gar nicht vorher auswählen, um sie mit Selection ansprechen zu können.
Code: Alles auswählen
Private Sub Suche()
    Dim i As Integer
    Dim intSeite As Integer

    With ActiveDocument.Range.Find
        .Text = m_strSuche
        While .Execute
            intSeite = Selection.Information(wdActiveEndPageNumber) 'die Zeile muss ich korrigieren
            With Controls(m_strLbx)
                .AddItem m_strSuche
                .Column(1, m_i) = intSeite
            End With
            m_i = m_i + 1
        Wend
    End With
End Sub

Also wie kann ich ohne Selection die Seiteninformation auslesen? Durch was muss ich Selection.Information(wdActiveEndPageNumber) ersetzen?
ActiveDocument.Range.Information(wdActiveEndPageNumber) hilft mir auch nicht weiter, sicherlich weil er keinen Bezug zum Treffer hat.

Vielen Dank schon im Voraus für Eure Zeit!
Gruß Tom
TomWest
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 273
Registriert: 18. Jan 2014, 12:14

Re: Text suchen und Seitenzahl ausgeben

Beitragvon TomWest » 06. Nov 2020, 09:01

Hab´s nun doch selbst gelöst, war zu offensichtlich und die Lösung steckte bereits in meiner (An)Frage:
Durch verkürzen der With-Anweisung lässt sich der Bezug herstellen. Für alle, die es interessiert:
Code: Alles auswählen
With ActiveDocument.Range
        .Find.Text = m_strSuche
        While .Find.Execute
            intSeite = .Information(wdActiveEndPageNumber)
            With Controls(m_strLbx)
                .AddItem m_strSuche
                .Column(1, m_i) = intSeite
            End With
            m_i = m_i + 1
        Wend
    End With
Gruß Tom
TomWest
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 273
Registriert: 18. Jan 2014, 12:14


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast