标签: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
以结束循环。
如果文档中包含有大量的表格,要删除这些表格中的空行,那么这里的代码非常有用。