Hallo zusammen
Ich möchte aus einem Word-Dokument Nummern mit dem Muster d{2}\.\d{3,4} (z. B. 18.2121 oder 16.231) auslesen und in eine Txt-Datei schreiben lassen. Bing-Chat mit GPT-4 hat mir den untenstehenden Code geliefert. In die Txt-Datei sind aber nicht alle Werte, die dem Muster entsprechen, sondern nur der erste Wert. Mit For each ... Next funktioniert etwas nicht. Woran könnte das liegen? (Windows 10, Microsoft 365)
Sub ListNumbers02()
Dim objRegEx As Object
Dim objMatches As Object
Dim objMatch As Object
Dim strText As String
Dim strOutput As String
Dim objFSO As Object
Dim objFile As Object
Dim strFilePath As String
' Set the regular expression pattern to match the desired format
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "\D\d{2}\.\d{3,4}\D"
' Get the text from the active document
strText = ActiveDocument.Range.Text
' Find all matches
Set objMatches = objRegEx.Execute(strText)
' Loop through each match and add it to the output string
For Each objMatch In objMatches
strOutput = strOutput & objMatch.Value & vbCrLf
Next objMatch
' Save the output to a text file in the same directory as the Word document
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFilePath = ActiveDocument.Path & "\Numbers.txt"
Set objFile = objFSO.CreateTextFile(strFilePath, True)
objFile.Write strOutput
objFile.Close
' Display a message box with the path to the output file
MsgBox "The list of numbers has been saved to " & strFilePath
End Sub
|