Ich bin neu in VBA und ich versuche, ein Makro in Excel zusammen. Dieses Makro dient dazu, ein Word-Dokument nach einer bestimmten Textzeichenfolge zu durchsuchen und die Seitennummer zurückzugeben, an der es sich befindet (d. H. Die Spalte sagt: "### wird auf der Seite des Dokuments gefunden").Excel VBA, um Seitenzahlen aus gefundenen Text in Word
Ich scheine sehr nahe zu sein, was ich will. Das Makro findet den Text und ich kann es bekommen, um mir zu sagen, dass es es gefunden hat/nicht gefunden hat. Wenn ich es jedoch mit Code ausführe, um die Seitenzahl zurückzugeben, teilt es mir mit, dass der Index außerhalb des Bereichs liegt. Ich bin sicher, die Schwierigkeit liegt in meinem begrenzten Verständnis der Objekte und ihrer Eigenschaften.
Jede Hilfe wird geschätzt!
Sub OpenWordDoc()
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Activate
wordapp.Documents.Open "filename.docx"
Set findRange = Sheet1.Range("D4:D8")
For Each findCell In findRange.Cells
Set rngFound = wordapp.ActiveDocument.Range.Find
rngFound.Text = findCell.Value
rngFound.Execute
If rngFound.Found Then
findCell.Offset(columnOffset:=1) = rngFound.Parent.Information(wdActiveEndPageNumber)
Else
findCell.Offset(columnOffset:=1) = findCell.Value
End If
Next findCell
wordapp.Quit
Set wordapp = Nothing
End Sub
Edit 1: Ich habe dies auf einem völlig anderen Computer und verschiedenen Versionen von Word und Excel versucht. Die gleiche Nachricht erscheint. Der Fehler ist dieses Stück - rngFound.Parent.Information (wdActiveEndPageNumber) - und ich denke, die RngFound.Parent fungiert nicht als eine "Auswahl". Ich versuchte auch, die wdActiveEndPageNumber durch wdNumberOfPagesInDocument zu ersetzen, nur um zu sehen, ob es der spezifische Wert war und die gleiche Fehlermeldung bekam.
hilft Genau das, was Linie den Fehler geben? Wenn ich versuche, das Problem zu replizieren, läuft es für mich gut. – Mikegrann
Ich bekomme "Laufzeitfehler '4608': Wert außerhalb des Bereichs 'es ist an der Linie, wo ich die Zelle gleich der Seitenzahl gesetzt – user6718894
Auf welcher Linie? Und welche Werte werden in die Funktion in dieser Zeile übergeben ? – Mikegrann