簡體   English   中英

MS Word 宏 - 刪除段落

[英]MS Word Macro - Delete Paragraphs

有人可以幫助我使用 MS Word 宏,它會在整個文檔的每個段落中搜索特定符號,並刪除不包含該符號的段落。

我對 VBA 幾乎一無所知,但剛收到一份龐大而笨重的文檔,我需要快速編輯。

這是一個快速宏,應該可以做你想做的事——謹慎使用,不要忘記備份!

將“搜索”的值設置為您要查找的文本。 它非常粗糙,如果您的文本沒有出現在其中某處,它將刪除該段落。

Sub DeleteParagraphContainingString()

    Dim search As String
    search = "delete me"

    Dim para As Paragraph
    For Each para In ActiveDocument.Paragraphs

        Dim txt As String
        txt = para.Range.Text

        If Not InStr(LCase(txt), search) Then
            para.Range.Delete
        End If

    Next

End Sub

我在 Office 2007 上試過這個。有點可怕,但似乎有效!

保羅的回答是一個好的開始,但我認為已經過時了。 我有與 OP 相同的問題,但必須修改 Paul 的答案才能在 Word 2016 中工作。請記住,如果 InStr 返回 0,則表示找不到匹配項,如果返回 >0,則表示它確實找到了匹配項。 因此,如果您想翻轉代碼以僅刪除找到的匹配項,請將“=”更改為“>”。 我希望這對未來的讀者有所幫助。 PS:這段代碼非常棒,可以幫助清理 Zoom 通話中的自動轉錄內容!

   Dim search As String
search = "delete me"

Dim para As Paragraph
For Each para In ActiveDocument.Paragraphs

    Dim txt As String
    txt = para.Range.Text

    If InStr(LCase(txt), LCase(search)) = 0 Then
        para.Range.Delete
    End If

Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM