Sie können Absätzen in Tabellenzellen mit folgendem Code fehlende Interpunktion hinzufügen. Zu den Bedingungen, unter denen dies ausgeführt wird, müssen Sie sich meinen Kommentar ansehen und weitere Informationen bereitstellen.
Sub AddPunction() Dim para As Paragraph, tbl As Table, tRow As Row Dim tCell As Cell, cRng As Range, pRng As Range For Each tbl In ActiveDocument.Tables For Each tRow In tbl.rows For Each tCell In tRow.Cells Set cRng = tCell.Range cRng.MoveEnd wdCharacter, -1 If cRng.Paragraphs.Count > 0 Then For Each para In cRng.Paragraphs Set pRng = para.Range If Asc(pRng.Characters.Last) = 13 Then pRng.MoveEnd wdCharacter, -1 End If If Not Asc(pRng.Characters.Last) = 46 Then pRng.Text = pRng.Text & "." End If Next para End If Next tCell Next tRow Next tbl End Sub
Basierend auf Ihren zusätzlichen Fragen, die als Kommentare gestellt wurden, finden Sie hier Ergänzungen zu meiner ursprünglichen Antwort:
Für eine Ressource zum Erstellen oder Ausführen eines Makros verwenden Sie diesen Microsoft Support-Link. https://support.office.com/en-us/article/create-or-run-a-macro-c6b99036-905c-49a6-818a-dfb98b7c3c9c
Was Ihre andere Frage betrifft, ob Sie den obigen Code basierend auf Ihren neuen bereitgestellten Informationen anpassen, können Sie ihn wie folgt ändern.
Sub TableLookBackAddPunctuation() Dim para As Paragraph, tbl As Table, tRow As Row Dim tCell As Cell, cRng As Range, pRng As Range Dim rng As word.Range For Each tbl In ActiveDocument.Tables For Each tRow In tbl.rows Set cRng = tRow.Cells(1).Range cRng.MoveEnd wdCharacter, -1 If cRng.Paragraphs.Count > 0 Then For Each para In cRng.Paragraphs Set pRng = para.Range If Asc(pRng.Characters.Last) = 13 Then pRng.MoveEnd wdCharacter, -1 End If Select Case Asc(pRng.Characters.Last) Case 33, 34, 35, 36, 37, 38, 39, 40, _ 41, 42, 43, 44, 45, 46, 63 'do nothing, punctuation already set Case Else Set rng = pRng rng.Collapse wdCollapseStart With rng.Find .ClearFormatting .Format = False .Forward = False .MatchCase = True .Text = pRng.Text .Wrap = wdFindStop .Execute If .found Then rng.MoveEnd wdCharacter, 1 Select Case Asc(rng.Characters.Last) Case 33, 34, 35, 36, 37, 38, 39, 40, _ 41, 42, 43, 44, 45, 46, 63 pRng.Text = pRng.Text & rng.Characters.Last Case Else 'do nothing, there's no punctuation End Select End If End With End Select Next para End If Next tRow Next tbl End Sub