【问题标题】:VBA Macro to Delete Empty Lines in Word TablesVBA 宏删除 Word 表中的空行
【发布时间】:2017-04-19 23:03:44
【问题描述】:

我一直在努力使用一个单词宏来删除存在“$”的空行。下面的代码有效,但仅适用于选定的表,我怎样才能让代码循环遍历整个文档并从所有页面中删除空行。

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

【问题讨论】:

  • 是否只查看每个工作表中的表格?
  • 是的,但不必是表格,只要它删除任何存在美元符号的空行即可。

标签: vba ms-word


【解决方案1】:

由于未提供,因此未在与 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

【讨论】:

  • 谢谢马苏德。它因编译错误而失败。
  • @user7675421 现在可以正常工作了。不要将word文档称为工作簿,以避免这种混淆。我是为 excel 工作簿做的。
  • 很抱歉给您带来了困惑。我试过它没有失败,但它没有删除任何空行。谢谢
  • @user7675421 正如您所描述的那样,它们并不为空。它们有 3 个字符,左边一个是美元符号。正确的?您能否提供您所拥有的内容以及期望的结果的屏幕截图?
  • 嗨,Masoud,我很抱歉从一开始就不清楚。我有一个邮件合并文档,在我合并模板数据后,我最终得到了一个大的 word 文档(合并文档)。在该文档中,存在美元符号的多行。我的目标是:如果美元符号旁边没有数字(让我们忽略空格)(在右侧五个空格内),则删除整行(例如:如果基本金额行没有金额,则从word文档。)。我希望这是有道理的.. 谢谢!
猜你喜欢
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多