die Listenformatierung ist kein richtiger text. Das wird erst zusammengbaut, weil Formatierungen viele Optionen haben. Hier ist noch eine Funktion ,die unerwünschte Zeichen entfernt.
Function BereinigeText(text As String) As String
' Entfernt nichtdruckbare Zeichen
Dim cleanText As String
cleanText = text
' Standardmäßig entfernen wir:
cleanText = Replace(cleanText, vbCr, "")
cleanText = Replace(cleanText, vbCrLf, "")
cleanText = Replace(cleanText, vbLf, "")
cleanText = Replace(cleanText, vbTab, "")
cleanText = Replace(cleanText, Chr(7), "")
cleanText = Replace(cleanText, Chr(11), "") ' Weicher Zeilenumbruch
cleanText = Replace(cleanText, Chr(160), " ") ' Geschütztes Leerzeichen ersetzen
cleanText = Replace(cleanText, Chr(13), "") ' Wagenrücklauf
' Optionale zusätzliche Reinigung (z. B. Zero Width Space entfernen)
cleanText = Replace(cleanText, ChrW(&H200B), "")
BereinigeText = Trim(cleanText)
End Function
Sub LeseNummerierteListeBereinigt2()
Dim tbl As Table
Dim zelle As Cell
Dim absatz As Paragraph
Dim textMitNummer As String
Dim bereinigt As String
Set tbl = ActiveDocument.Tables(1)
Set zelle = tbl.Cell(3, 2)
For Each absatz In zelle.Range.Paragraphs
With absatz.Range
bereinigt = BereinigeText(.text)
' Nur weitermachen, wenn etwas "Sichtbares" übrig bleibt
If Len(bereinigt) > 0 Then
If .ListFormat.ListType <> wdListNoNumbering Then
textMitNummer = textMitNummer & "|" & .ListFormat.ListString & " " & bereinigt
End If
End If
End With
Next absatz
If Len(textMitNummer) > 0 Then MsgBox Replace(textMitNummer, "|", vbLf)
End Sub
|