我面臨著一個具有挑戰性的要求,我需要在 Word 中使用 VBA 宏來解決。
該檔案是一個模板,它將在生成時在 DB 中獲取一些資料。它包含多個表,但我不知道每個表中有多少和多少資料。
它看起來像這樣:
樣本初始狀態
要求是能夠檢測到后面沒有表的字串并洗掉它們。換個說法,當字串后面跟著表時,一切都很好。當一個字串后跟另一個字串時,它應該被洗掉。
不同的字串是已知的,我猜這會有所幫助。
宏運行后,我之前的示例應如下所示:
樣本預期結果
我知道它看起來有點苛刻,但我什至不知道從哪里開始:(
我已經查看了搜索文本的宏,但我無法找到類似 IF stringA 后跟一個表的內容,如果沒有則不執行任何操作,然后洗掉。
非常感謝社區的任何幫助!
謝謝朱利安
uj5u.com熱心網友回復:
這應該讓你開始:
Sub FindAndDelete()
Dim rng As Range
Set rng = ActiveDocument.Content
With rng
With .Find
.ClearFormatting
.Text = "Text to find"
End With
Do While .Find.Execute
If .Next(wdParagraph).Tables.Count = 0 Then
.Next(wdParagraph).Delete
End If
Loop
End With
End Sub
uj5u.com熱心網友回復:
非常感謝!
我能夠通過稍微修改它來使其作業,因為建議的代碼洗掉了后面緊跟表格的字串:
Dim rng As Range
Set rng = ActiveDocument.Content
With rng
With .Find
.ClearFormatting
.Text = "This is my table C"
End With
Do While .Find.Execute
If .Next(wdParagraph).Tables.Count = 0 Then
.Delete
End If
Loop
End With
我的最后一步是讓宏只針對檔案的特定部分運行。我想我需要在這個范圍內作業。我會嘗試并在此處發布結果。再次感謝您幫助純新手!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/375355.html
