2017-04-14 139 views
1

我一直在努力處理一個單詞宏,該宏刪除存在「$」的空行。下面的代碼工作,但只適用於所選表格,我如何讓代碼循環遍歷整個文檔並刪除所有頁面中的空行。VBA宏刪除Word表中的空行

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

謝謝馬蘇德。編譯錯誤失敗。 – user7675421

+0

@ user7675421現在正在工作。不要將Word文檔稱爲工作簿以避免這種混淆。我正在爲Excel工作簿做這件事。 – Masoud

+0

對此感到抱歉。我試過它不會失敗,但它不會刪除任何空行。謝謝 – user7675421