Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Über Excel Text in MS Word suchen+anspringen

Forumthread: VBA - Über Excel Text in MS Word suchen+anspringen

VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 11:30:00
Tobias
Hallo zusammen,
ich stehe aktuell vor dem Problem, dass ich über MS Excel ein Word Dokument öffnen möchte und in diesem ein bestimmtes Wort suchen möchte. Anschließend soll Word dauerhaft an dieser Stelle bleiben, so dass ein Benutzer direkt von diesem Wort das Dokument lesen könnte.
Mein Code sieht aktuell so aus
Sub Test()
' Test Makro
Dim AppWD As Object
Dim Name As String
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
Pfad = "C:\privat\beispiel.doc"
AppWD.documents.Open Pfad
AppWD.Selection.Find.ClearFormatting
With AppWD.Selection.Find
.text = "Test"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
AppWD.Selection.Find.Execute
AppWD.Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=Zeile
'Selection.Expand wdLine
'Selection.Font.Bold = wdToggle
End Sub
Das öffnen des Dokumentes und finden des Wortes ist kein Problem, aber am Ende des Codes springt das Dokument wieder an den Anfang.
Eine Lösung über Textmarken habe ich schon versucht, finde ich aber nicht sehr praktikabel. Gibt es hier andere Lösungen ein Wort zu suchen und an dieser Stelle zu bleiben?
Vielen Dank und Viele Grüße
Tobias
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 14:46:37
Rob
Du kannst das gefundene Wort doch in einer Range-Variablen festhalten und anschließend darauf zugreifen. Sollte auch ohne Bookmarks/Textmarken gehen.
AW: VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 14:58:08
Tobias
Hallo Rob,
ich kann dir nicht ganz folgen.
Kannst du mir das anhand eines Code-Schnipsels zeigen?
Vielen Dank und viele Grüße
Tobias
Anzeige
AW: VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 14:58:09
Tobias
Hallo Rob,
ich kann dir nicht ganz folgen.
Kannst du mir das anhand eines Code-Schnipsels zeigen?
Vielen Dank und viele Grüße
Tobias
AW: VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 19:05:42
Rob
So z.B:

Sub SetRange()
Dim r As Range, Finden As Range
Set r = ActiveDocument.Content
With r.Find
.Text = "B"
.MatchCase = False
End With
r.Find.Execute
If r.Find.Found Then
Set Finden = r
End If
r.Select
End Sub
Muss allerdings noch auf Dein Dokument anpassen.
Anzeige
AW: VBA - Über Excel Text in MS Word suchen+anspringen
18.03.2019 19:14:10
Rob
Bzw geht auch kürzer, ohne zusätzliche Variable für Finden.

Sub SetRange()
Dim r As Range
Set r = ActiveDocument.Content
With r.Find
.Text = "Modulinhalt"
.MatchCase = False
End With
r.Find.Execute
If r.Find.Found Then
r.Select
End If
End Sub

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

VBA: Text in MS Word suchen und an Ort und Stelle bleiben


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul einfügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Test()
       Dim AppWD As Object
       Set AppWD = CreateObject("Word.Application")
       AppWD.Visible = True
       Dim Pfad As String
       Pfad = "C:\privat\beispiel.doc"
       AppWD.Documents.Open Pfad
    
       With AppWD.Selection.Find
           .ClearFormatting
           .Text = "Test"
           .Forward = True
           .Wrap = wdFindContinue
           .Format = False
           .MatchCase = False
           .MatchWholeWord = True
           .MatchWildcards = False
       End With
    
       If AppWD.Selection.Find.Execute Then
           AppWD.Selection.Select
       End If
    End Sub
  4. Anpassen des Suchbegriffs: Ersetze "Test" mit dem Wort, das du in deinem Word-Dokument suchen möchtest.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: Das Dokument springt am Ende des Codes wieder an den Anfang.

    • Lösung: Stelle sicher, dass du die .Select-Methode nach dem Finden des Wortes verwendest, um an der Stelle zu bleiben.
  • Fehler: Word öffnet sich nicht.

    • Lösung: Überprüfe, ob Microsoft Word korrekt installiert ist und keine Sicherheitsrichtlinien das Öffnen von Word behindern.

Alternative Methoden

Du kannst auch den folgenden, kürzeren Code verwenden, um ein Wort zu suchen und gleich auszuwählen:

Sub SetRange()
    Dim r As Range
    Set r = ActiveDocument.Content

    With r.Find
        .Text = "Modulinhalt"
        .MatchCase = False
    End With

    If r.Find.Execute Then
        r.Select
    End If
End Sub

Diese Methode verwendet keine zusätzliche Variable für das gefundene Wort und ist einfacher zu implementieren.


Praktische Beispiele

  1. Wort suchen in Word: Um ein spezifisches Wort wie "Excel" zu suchen, ändere einfach die .Text-Eigenschaft im Code:

    .Text = "Excel"
  2. Wörter suchen Word: Du kannst auch mehrere Wörter suchen, indem du eine Schleife verwendest, um die Suche für eine Liste von Wörtern durchzuführen.


Tipps für Profis

  • Excel vorlesen lassen: Du kannst VBA auch nutzen, um Text in Excel vorlesen zu lassen, bevor du in Word suchst. Dies kann hilfreich sein, um sicherzustellen, dass du das richtige Wort suchst.
  • Wort suchen in Word optimieren: Experimentiere mit den .MatchCase und .MatchWholeWord Einstellungen, um deine Suche zu verfeinern.

FAQ: Häufige Fragen

1. Wie kann ich ein Word-Dokument in Excel öffnen?
Du kannst dies tun, indem du CreateObject("Word.Application") verwendest, um eine Instanz von Word zu erstellen und dann das Dokument mit Documents.Open zu öffnen.

2. Gibt es eine Möglichkeit, mehrere Wörter gleichzeitig zu suchen?
Ja, du kannst eine Schleife verwenden, um durch eine Liste von Wörtern zu iterieren und die .Find.Execute-Methode für jedes Wort anzuwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige