Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1764to1768
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word Vba: Wort finden und auswählen

Word Vba: Wort finden und auswählen
18.06.2020 16:43:56
Debugger
Hallo zusammen,
folgendes Problem:
Ich möchte einen bestimmten String finden (in einem Word Dokument) und die ganze Zeile in dieser ist markieren, damit ich ihn in einer Variable speichern kann.
Beispiel:
Der String lautet "Version xxxx"
Dabei sind die letzten xxxx immer variabel.
Ich möchte nun in einem Excel VBA ein Word Dokument öffnen, den String suchen, dann diesen auswählen und abspeichern.
Code:

Sub Test ()
Dim Dokument As String, Versionsnummer As String
Dim oAppWD As Object, oDoc As Object
Set oAppWD = CreateObject("Word.Application")
If Not oAppWD Is Nothing Then
End If
oAppWD.Visible = True
If oAppWD.Options.AllowReadingMode = True Then 'Word nicht im Lesemodus starten bei  _
Schreibgeschützten Dokumenten
oAppWD.Options.AllowReadingMode = False
End If
Dokument = Pfad
Set oDoc = oAppWD.Documents.Open(Dokument)
With oDoc
With .Range
With .Find
.Forward = True
.ClearFormatting
.Text = "Version"
.MatchWholeWord = True
.MatchCase = False
.Wrap = wdFindContinue
.Execute
End With
If .Find.Found = True Then
oDoc.Range.Row.Select
'Selection.SelectRow
Versionsnummer = oDoc.Range.Selection
End If
End With
End With
End Sub

Würde mich riesig über Antworten freuen.
VG

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
In Word suchen und die ganze Zeile...
18.06.2020 19:29:33
Case
Hallo, :-)
... ausgeben geht so: ;-)
Option Explicit
Public Sub Main()
Const strFile As String = "C:\Temp\TestFile.docx"
Const strTMP As String = "Version"
Const wdFindContinue = 1
Dim objWDApp As Object
Dim objWDDoc As Object
Dim objRange As Object
Dim objLine As Object
On Error GoTo Fin
Set objWDApp = CreateObject("Word.Application")
objWDApp.Visible = True
Set objWDDoc = objWDApp.Documents.Open(strFile, ReadOnly:=True)
Set objRange = objWDDoc.Content
With objWDApp.Selection.Find
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.Text = strTMP
If .Execute = True Then
Set objLine = objWDApp.Selection.Bookmarks("\Line").Range
MsgBox objLine
objWDDoc.Close False
If Not objWDApp Is Nothing Then objWDApp.Quit
End If
End With
Fin:
Set objLine = Nothing
Set objRange = Nothing
Set objWDDoc = Nothing
Set objWDDoc = Nothing
If Err.Number  0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Es gibt vordefinierte Bookmarks (für die ganze Zeile = \Line).
Predefined Bookmarks...
Es ist ein Unterschied, ob du über den "Range", oder über die "Selection" suchst.
Suchen...
Servus
Case

Anzeige

161 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige