Word VBA实战技巧:快速删除表格中所有空行

2023-02-24 20:30:54 浏览数 (1)

标签:Word VBA

有时候,表格中有很多空行,如果觉得一行一行操作很麻烦,那么可以使用VBA来帮你完成。代码如下:

代码语言:javascript复制
Sub DeleteEmptyRowsWithinTable()
 Dim objTable As Table
 Dim objRow As Range
 Dim objCell As Cell
 Dim iCounter As Long
 Dim lngNumRows As Long
 Dim strStatusBar As String
 Dim blnTextInRow As Boolean

'指定想要操作的表格
 Set objTable = Selection.Tables(1)
'设置变量指向第1行
 Set objRow = objTable.Rows(1).Range
 lngNumRows = objTable.Rows.Count

 Application.ScreenUpdating = False

 For iCounter = 1 To lngNumRows
   strStatusBar = "行" & iCounter
   blnTextInRow = False

   For Each objCell In objRow.Rows(1).Cells
     If Len(objCell.Range.Text) > 2 Then
        '单元格末尾标记实际上有2个字符
         blnTextInRow = True
         Exit For
     End If
   Next objCell

   If blnTextInRow Then
     Set objRow = objRow.Next(wdRow)
   Else
     objRow.Rows(1).Delete
   End If
 Next iCounter

 Application.ScreenUpdating = True
End Sub

如果文档中有许多表格,你想快速删除这些表格中的所有空行,那么可以将上述代码中的语句:

Set objTable = Selection.Tables(1)

替换为下面的语句:

For Each objTable In ActiveDocument.Tables

并在语句:

Application.ScreenUpdating = True

之前添加代码:

Next objTable

以结束循环。

如果文档中包含有大量的表格,要删除这些表格中的空行,那么这里的代码非常有用。

vba

0 人点赞