2017-04-14 6 views
1

"$"が存在する空行を削除する単語マクロに苦労しています。下のコードは選択されたテーブルのみで動作しますが、ドキュメント全体を通してコードループを実行し、すべてのページから空行を削除するにはどうすればよいですか。ワードテーブルの空行を削除するVBAマクロ

Document

Option Explicit 

Sub TEST() 
Dim i  As Long 
    With Selection.Tables(1) 
     For i = .Rows.Count To 1 Step -1 
      If Len(.Cell(i, 2).Range.Text) = 3 And Left(.Cell(i, 2).Range.Text, 1) = "$" Then 
       .Rows(i).Delete 
      End If 
     Next i 
    End With 
End Sub 
+0

各ワークシートのテーブルだけを調べていますか? – Masoud

+0

はい、ドル記号が存在する空の行を削除する限り、テーブルである必要はありません。 – user7675421

答えて

3

それが設けられていないためOPが有するようにこれは、同じデータセット上でテストされていません。

Option Explicit 

Sub TEST() 


Dim tbl As Table 
Dim mDoc As Document 
Dim oRow As Row 

Set mDoc = ActiveDocument 


    For Each tbl in mDoc.Tables 

     For Each oRow In tbl.Rows 

       If Len(oRow.Cells(2).Range.Text) = 3 And _ 
        Left(oRow.Cells(2).Range.Text, 1) = "$" Then 

         oRow.Delete 

       End If 
       Next oRow 
    Next tbl 

End Sub 
+0

ありがとうMasoud。コンパイルエラーで失敗しています。 – user7675421

+0

@ user7675421これは機能しています。この種の混乱を避けるために、ワード文書をワークブックとして参照しないでください。私はExcelブックでそれをやっていました。 – Masoud

+0

混乱して申し訳ありません。私は失敗しませんでしたが、空の行は削除されませんでした。ありがとう – user7675421

関連する問題