Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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

VBA Selection.Find funktioniert nicht

VBA Selection.Find funktioniert nicht
15.10.2014 16:18:24
Felix
Hallo Leute,
ich will derzeit eine Abfrage in Excel via VBA programmieren, mit der ich auf ein Word-Dokument zugreife, dort einen Namen suche und mir dann die Seitenzahlen, auf denen der Name steht, ausgeben lassen. Soweit so gut. Allerdings schaffe ich es nicht die selection.find methode zum Funktionieren zu bringen. Diesmal bekomme ich den Fehler "Objekt untertsützt diese Eigenschaft oder Methode nicht".
Hier mein Code:
Sub Zahlen_hinzufügen()
Dim intRowCnt As Integer
Dim AppWD As Object
Dim fn
Dim wdDoc As Object
'''''''''''''''''''''Öfnnen der Word -Datei''''''''''''''''''''
Const StartDrive = "C:"
Const StartDir = "\"
ChDrive StartDrive
ChDir StartDir
fn = Application.GetOpenFilename("Word-Dokumente, *.docx", , "Bitte Datei auswählen")
If fn = False Then Exit Sub 'Abbrechen gedrückt
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
Set wdDoc = AppWD.Documents.Open( _
Filename:=fn, _
ConfirmConversions:=False, _
ReadOnly:=False, _
AddToRecentFiles:=False, _
PasswordDocument:="", _
PasswordTemplate:="", _
Revert:=False, _
WritePasswordDocument:="", _
WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, _
Visible:=True)
'''''''''''''''''''Name aus Excel-Zelle auslesen '''''''''''''''
intCol = 1 'Nummer der Spalte in Excel, die ausgelesen werden soll
For intRowCnt = 1 To Cells(Rows.Count, intCol).End(xlUp).Row ' Für jeden Namen in Exceltabelle
PersonName = Cells(intRowCnt, intCol)
'''''''''''''''''''Suche im aktiven Word-Dokument nach PersonName '''''''''''''''
With wdDoc.Selection.Find
.ClearFormatting
.Text = PersonName
.Execute Forward = True
End With
'''''''''''''''''''Lese die Seitenzahl aus, auf der das Suchergebnis gefunden wurde und  _
schreibe sie in Excel '''''''''''''''
Cells(intRowCnt, 2) = wdDoc.Selection.Information(wdActiveEndAdjustedPageNumber)
Next
AppWD.Documents(fn).Close SaveChanges:=False
AppWD.Quit
Set AppWD = Nothing
End Sub

Hat irgendjemand eine Idee, was das Problem ist und wie man es lösen könnte?
Vielen Dank im Voraus,
Felix

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
fehlt da nicht ein Doppelpunkt?
15.10.2014 17:17:55
Tino
Hallo,
müsste die Zeile nicht mit Doppelpunkt da stehen?
.Execute Forward:= True
Gruß Tino

AW: fehlt da nicht ein Doppelpunkt?
15.10.2014 17:28:26
Felix
Ja das wahrscheinlich auch ;-)
Der Hauptfehler war allerdings wie ich gerade per Zufall herausgefunden habe, dass man nicht das Dokument selbst (wdDoc), sondern das Programm direkt ansteuern muss (AppWD).
Sprich: AppWD.Selection.Find
Vielen Dank trotzdem für die Hilfe :-)
Felix

Nachfrage: Verweis auf Word ... vorhanden?
15.10.2014 17:40:29
Tino
Hallo,
ich sehe in Deinem Code die Konstanten
wdOpenFormatAuto oder wdActiveEndAdjustedPageNumber
die gibt es so im Excel nicht, also muss ein Verweis auf Word vorhanden sein.
Dann kannst Du die Deklarierung anstatt auf Objekt auch gleich so einstellen.
Dim AppWD As Word.Application
Dim wdDoc As Word.Document

Hat den Vorteil, dass die Intellisense beim Programmieren hilft.
Dann wäre dies wahrscheinlich auch aufgefallen.
Gruß Tino

Anzeige
AW: Nachfrage: Verweis auf Word ... vorhanden?
15.10.2014 17:47:48
Felix
Super Tipp!
Vielen Dank Tino!
Felix

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige