2017-10-12 5 views
0

に第一及び第二のインスタンス間で削除し、私は以下のこのテキストを、文書を持っている、と私はループにそれをVBAマクロを必要と

削除「を| unwanted_text」

すべての行から誰でも私を喜ばせることができますか?

例1 | unwanted_text |例2 |例3 |例4
hello world
例1 | unwanted_text |例2 |例3 |最終的な結果は次のようにする必要がありexample4
ハロー世界



例1 |例2 |例3 |例4
hello world
example1 |例2 |例3 | example4
のHello World

注: unwanted_text は、任意の文字列変数可能性がありVBAワード、VBAワードですべての段落

+0

「不要なテキスト」が実際に何であるかを正確に定義するか、検索方法の規則を説明する必要があります。それは "|"で区切られていますか?もしそうなら、いつも正しいデリミタになるでしょうか? –

+0

Wordの "Replace All"と同等の処理を実行しようとしていますか? "Find what:"は指定したとおりで、 "Replace with:"は空の文字列ですか?これは、「各段落の最初と2番目のインスタンスの間の削除」の質問タイトルに適合していないようです。 – YowE3K

+0

テキストのループ:2番目と4番目の単語が "|" 2番目と3番目の単語を削除します。 – Amjad

答えて

0

次のコードでは、なります:パターンが (c)が削除見つかった場合 (a)のドキュメントスルースピンが (b)の決定パターンが見つかった場合は2番目と3番目の単語。

Sub Delete_Words() 
    Dim oPara As Word.Paragraph 

    On Error GoTo Error_Trap 
    For Each oPara In ActiveDocument.Paragraphs 
     If oPara.Range.Words.Count > 3 Then 

      ' You can check for specific values of word 2 and 4 
      ' Then could delete whatever is between 
      'Debug.Print oPara.Range.Words(2).Text & " <> " & oPara.Range.Words(4).Text 
      If Trim(oPara.Range.Words(2).Text) = "|" And Trim(oPara.Range.Words(4).Text) = "|" Then 
       ' NOTE!! Must delete word 3 before word 2, else incorrect results! 
       oPara.Range.Words(3).Delete 
       oPara.Range.Words(2).Delete 
      End If 
     Else 
      ' Not enough words 
     End If 
    Next 
    Exit Sub 
Error_Trap: 
    Debug.Print "Error: "^Err.Number & vbTab & Err.Description 
    MsgBox "Error: "^Err.Number & vbTab & Err.Description 
End Sub 
関連する問題