2016-06-16 7 views
0

ワードドキュメントで繰り返される特定のセクションを削除する方法。最初のセクションには単語 "example"があり、2番目のセクションには "example.com"という単語があります。これらの文字列は、セクション全体テキストがセクション全体削除セクションにある場合はVba

Dim Sect As Section 
For Each Sect In ActiveDocument.Sections 
If ActiveDocument.Sect.Range.Find.Text = "example" Or ActiveDocument.Sect.Range.Find.Text ="example.com" Then 
Activedocument.Sect.Range.delete 
Next 

を削除発見された場合もあなたはいくつかの問題を持っている全ワード文書

+0

それはほとんど労力を示し、任意のコードを提供しないので、これはおそらくdownvoteを得ています。試したコードとそれに付随している特定の問題を提供する必要があります。これはコードのアウトソーシングサイトではありません。 – OpiesDad

+0

更新されたコード – AK0101

答えて

1

をループセクション5からスタート。

1)セクション5から始めようとしていないので、明らかにこれをしません。しかし、これをテストしていても、セクションを削除してフォワードをループしているため、コードが壊れてしまいます。文字列 "example"が含まれている場合は、セクションを逆に確認して削除する必要があります。

2)文字列を検索しようとしてもうまくいかないでしょう。あなたがコードを実行しようとしていて、それを実行している間にエラーが発生し、エラーが発生した行が書かれていれば、それはうれしいことでした。つまり、これは意味をなさない。必要に応じてfindメソッドのドキュメントをチェックできますが、以下に示すようにInStr関数がうまく機能します。

3) "Sect In ActiveDocument.Sections"の構文を使用すると、 "Sect"変数が既にセクションにBECOMESされています。 ActiveDocument.Sect ....は動作しません。その時点で宗派を使うだけです。私はループの別の方法を使用しましたが、アイデアは変わりません。

4)すでに文字列内の "example"というテキストを検索している場合、 "example.com"というテキストを検索するのは意味がありません。ただ1つの検索を行います。

<rant>

私が示唆されるように、正確なエラーおよびエラーを生成したコードの正確な行を文書化してみてください。あなたが "試した"コードを提供している間、あなたはあまり多くの努力を示していません。問題が発生したときは、a)実際にコードを実行してエラーを見つけること、b)使用しようとしているメソッド/プロパティを調べることで明白な構文上の問題があるかどうかを確認する、c)変数を調べるdebug.printまたは地元の窓を使って彼らがあなたが思うものが含まれているかどうかを確認してください<\rant>

以下の作業コード。

サブテスト()

Dim mysects As Sections 
Dim mysect As Section 

Set mysects = ActiveDocument.Sections 

For x = mysects.Last.Index To 5 Step -1 
    Set mysect = mysects.Item(x) 
    If InStr(1, mysect.Range.Text, "example", vbTextCompare) _ 
     Or InStr(1, mysect.Range.Text, "nextText", vbTextCompare) Then 
     mysect.Range.Delete 
    End If 

Next x 

End Sub 
+0

ありがとうございますが、これは1つのセクションのみを削除します。 "example.com"という文字列を持つ他のセクションはどうでしょうか?また、悪い例では、2番目のテキストは、最初の "リンゴ"とは異なります – AK0101

+0

私は自分自身を働かせてもらえません、ありがとう! – AK0101

+0

また、私は最初のページをスキップするようにしようとしていましたが、それは各ドキュメントで変更される可能性があります。したがって、 "apple.com"の2番目のインスタンスが見つかるまでスキップしてから、ループ – AK0101

関連する問題