2017-04-14 295 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