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

Forumthread: Word-Datei ansprechen

Word-Datei ansprechen
SiegfriedR
Hallo.
ich möchte in einer bereits geöffneten Word-Datei (wichtig: die Datei ist bereits offen) einen String suchen aus Excel heraus. [Ich weiß wie man eine Worddatei öffnet und darin sucht. Allerdings dann ist die Worddatei bereits offen und ich möchte von Excel heraus eine 2te Suche anstoßen] Mein Problem ist, daß ich die Worddatei ansprechen will ohne sie ein zweites Mal zu öffnen.
Danke für die Hilfe
Anzeige

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

Betreff
Benutzer
Anzeige
Was soll mit dem gesuchten Text passieren ?
02.12.2011 12:20:39
NoNet
Hallo Siegfried,
weshalb möchtest Du in Word ein Wort suchen, das Du bereits kennst ?
Was soll denn mit dem gesuchten Text passieren ?
Grundsätzlich referenziert man ein bereits geöffnetes WORD-Dokument aus Excel heraus mit GETOBJECT() - hier ein kleines Beispiel (Suche funktioniert noch nicht 100% - aber Du weisst ja wie man richtig sucht) :
Sub Erde_an_Mond()
Dim wdApp As Object, wdDoc As Object
Set wdApp = GetObject(, "Word.Application")
Set wdDoc = wdApp.documents(1)
'MsgBox wdDoc.content.Text
MsgBox wdDoc.content.Find.Text = "Suchbegriff"
wdDoc.content.Find.Execute
End Sub
Gruß, NoNet
Anzeige
AW: Was soll mit dem gesuchten Text passieren ?
02.12.2011 12:31:38
SiegfriedR
Ich will nur den String suchen, dh. die Textstelle anzeigen lassen, nicht mehr.
In Excel ist sozusagen das Inhaltsverz. aus der ich dann die Textstelle "anspringen" möchte.
Ich erhalte den Laufzeitfehler 5941 (Das aufgeforderte Element ist nicht in der Sammlung vorhanden in der Codezeile: Set wdDoc = ...
obwohl eine .doc-Datei geöffnet ist
Anzeige
AW: doppelt - siehe Antwort unten
02.12.2011 13:17:55
SiegfriedR
Hallo Harald,
jaein: Dein Vorschlag scheint gut zu sein, aber bei mir wird partout die offene Word-Datei nicht erkannt.
Trotzdem Danke
Anzeige
AW: doppelt - siehe Antwort unten
02.12.2011 13:25:23
Harald
Wenn ich eine Word Datei parallel zu Excel manuell öffne, funktioniert es bei mir. Sicher, dass der Fehler nicht schon bei GetObject() auftritt?
Harald
;
Anzeige

Infobox / Tutorial

Word-Datei ansprechen und in Excel suchen


Schritt-für-Schritt-Anleitung

Um in einer bereits geöffneten Word-Datei von Excel aus nach einem bestimmten String zu suchen, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt die GetObject()-Methode, um auf die offene Word-Anwendung zuzugreifen.

Sub SucheInWord()
    Dim wdApp As Object, wdDoc As Object
    Dim Suchbegriff As String

    ' Definiere den Suchbegriff
    Suchbegriff = "DeinSuchbegriff"

    ' Zugriff auf die offene Word-Anwendung
    Set wdApp = GetObject(, "Word.Application")
    Set wdDoc = wdApp.Documents(1)

    ' Suche nach dem Begriff
    With wdDoc.Content.Find
        .Text = Suchbegriff
        .Execute
    End With

    ' Überprüfe, ob der Begriff gefunden wurde
    If wdDoc.Content.Find.Found Then
        MsgBox "Der Begriff '" & Suchbegriff & "' wurde gefunden."
    Else
        MsgBox "Der Begriff '" & Suchbegriff & "' wurde nicht gefunden."
    End If
End Sub

Achte darauf, dass du den Suchbegriff an deine Bedürfnisse anpasst. Dieser Code funktioniert in Excel und setzt voraus, dass die Word-Datei bereits geöffnet ist.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 5941:

    • Problem: Dieser Fehler tritt auf, wenn Excel die offene Word-Datei nicht erkennen kann.
    • Lösung: Stelle sicher, dass die Word-Datei tatsächlich geöffnet ist und dass du mit GetObject() die richtige Word-Instanz ansprechen kannst. Überprüfe auch, ob die Dokumente korrekt geladen sind.
  2. GetObject() schlägt fehl:

    • Problem: Möglicherweise wird die Word-Anwendung nicht gefunden.
    • Lösung: Stelle sicher, dass Word vor dem Ausführen des Makros geöffnet wurde. Versuche, Word manuell zu starten und die Datei zu öffnen, bevor du das Makro ausführst.

Alternative Methoden

Falls du Schwierigkeiten mit GetObject() hast, kannst du auch die CreateObject()-Methode verwenden, um eine neue Instanz von Word zu erstellen. Beachte jedoch, dass dies die Datei erneut öffnet. Eine echte Alternative wäre, die Word-Objekte über COM-Programmierung zu steuern, aber das erfordert tiefere Programmierkenntnisse.


Praktische Beispiele

  • Beispiel 1: Suche nach einem bestimmten Wort in einem Textdokument.
  • Beispiel 2: Automatisiere das Auslesen von Daten aus Word-Dokumenten, um sie in Excel zu verarbeiten.

Diese Beispiele können leicht an deinen spezifischen Anwendungsfall angepasst werden, indem du den Suchbegriff oder die Logik zur Verarbeitung der gefundenen Inhalte änderst.


Tipps für Profis

  • Nutze wdApp.Visible = True, um Word sichtbar zu machen, während dein Makro läuft. So kannst du sehen, was passiert.
  • Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme während der Ausführung deines VBA-Codes zu vermeiden.
  • Experimentiere mit weiteren Eigenschaften des Content.Find-Objekts, um die Suche zu verfeinern, z. B. Groß-/Kleinschreibung oder Formatierungen.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um mehrere Begriffe gleichzeitig zu suchen?
Ja, du kannst eine Schleife verwenden, um mehrere Suchbegriffe nacheinander abzuarbeiten.

2. Welche Excel-Version wird benötigt, um diesen Code auszuführen?
Der Code sollte in Excel 2010 und neueren Versionen funktionieren, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige