Bearbeiten von Zeichenfolgen, auf die ein Satzzeichen folgt, in Microsoft Word

Bearbeiten von Zeichenfolgen, auf die ein Satzzeichen folgt, in Microsoft Word

Ich habe ein Microsoft Word-Dokument mit zwei Textabschnitten. Der erste hat die Form eines Absatzes, der zweite ist in Absatzform in Abschnitte unterteilt und ohne Interpunktion in einer Tabelle platziert. Gibt es eine Funktion, die ich verwenden kann, damit:

  • Wenn: Im interpunktierten Text folgt auf einen Abschnitt ein Satzzeichen,
  • Dann: Im uninterpunktierten Text innerhalb der Tabelle wird die Interpunktion hinzugefügt.

Wenn dies in Microsoft Word nicht möglich ist, gibt es andere empfohlene Tools zum Erreichen dieses Ziels?

Hier ist ein Screenshot, der in Microsoft Word erstellt wurde, um mein Problem zu veranschaulichen.

Hier ist ein Bild, das die Aufgabe veranschaulicht

Antwort1

Mit dem folgenden Code können Sie Absätzen in Tabellenzellen fehlende Satzzeichen hinzufügen. Was die Bedingungen betrifft, 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 Sie als Kommentare gestellt haben, sind hier die Ergänzungen zu meiner ursprünglichen Antwort:

Informationen zum Erstellen oder Ausführen eines Makros finden Sie unter diesem Microsoft-Support-Link. https://support.office.com/en-us/article/create-or-run-a-macro-c6b99036-905c-49a6-818a-dfb98b7c3c9c

Zu Ihrer anderen Frage, den obigen Code anhand der von Ihnen neu bereitgestellten Informationen anzupassen, erfahren Sie hier, wie Sie ihn ändern können.

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

verwandte Informationen