Ich versuche ein VBA-Skript zu machen, das ein Word-Dokument öffnet, nach einem Wort sucht, das wie "TPXXXX" aussieht, wobei "X" Zahlen sind, und fügt das dann ein Text in eine Excel-Tabelle. Ich kann das Word-Dokument öffnen, aber ich habe Schwierigkeiten, den benötigten Text auszuwählen und zu finden. So weit für diesen Teil habe ich:Word-Dokument öffnen, bestimmten Text kopieren, in Excel-Tabelle einfügen
Sub Copy()
'Create variables
Dim Word As New Word.Application
Dim WordDoc As New Word.Document
Dim Doc_Path As String
Dim WB As Workbook
Dim WB_Name As String
Doc_Path = "C:\Path\To\File.docx"
Set WordDoc = Word.Documents.Open(Doc_Path)
'Find text and copy it (part that I am having trouble with)
Selection.Find.ClearFormatting
With Selection.Find
.Text = "TP"
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
End With
Selection.Find.Execute
Selection.EscapeKey
Selection.MoveLeft Unit: wdCharacter , Count:=2
Selection.MoveRight Unit: wdCharacter , Count:=4
Selection.Copy
'Open excel workbook and paste
WB_Name = Application.GetOpenFilename(",*.xlsx")
Set WB = Workbooks.Open(WB_Name)
WB.Sheets("Sheet1").Select
Range("AB2").Select
ActiveSheet.Paste
WordDoc.Close
Word.Quit
End Sub
Kann mir jemand einige Hinweise geben?
Das funktioniert perfekt! Weißt du, wie ich eine Schleife erstellen würde, um alle TP-Nummern zu finden? – electronicaneer
Statt '.Execute' können Sie eine Schleife ausführen:' Do While .Execute'. Ein Beispiel finden Sie [hier] (http://superuser.com/questions/1009085/find-all-instances-of-a-text-and-make-it-a-hyperlink-with-a-macro). – xidgel
Noch eine Sache, wie würde ich die Schleife stoppen, wenn es keine TPXXXX-Nummern mehr gibt? Die Anzahl der TP-Nummern variiert von jedem Dokument, aus dem ich sie kopieren muss, und das Einzige, woran ich denken kann, ist vielleicht die Anzahl der TP-Nummern zu zählen und dann eine For-Schleife zu verwenden, um diese mehrmals zu wiederholen. – electronicaneer