标签:Word VBA
可以使用VBA代码来判断文档中表格内的单元格是否为空。下面的代码检查所选文档内容中表格内的单元格,并给出空单元格的信息。
方法1
基于空单元格由Chr(7)跟随的段落标记组成,可以使用Range对象检测空单元格,代码如下:
Sub CheckTableCells()
Dim rngCell As Cell
Dim rngRow As Row
For Each rngRow In Selection.Tables(1).Rows
For Each rngCell In rngRow.Cells
If rngCell.Range.Text = Chr(13) & Chr(7) Then
MsgBox "第" & rngCell.RowIndex & "行,第" & rngCell.ColumnIndex & "列为空."
End If
Next rngCell
Next rngRow
End Sub
方法2
使用Range变量,将其设置为标记每个单元格的区域,移动到区域的末端,使单元格末端标记和段落标记不包含在区域中(要执行此操作,只需将其移动一个字符),并获取区域内的文本。如果单元格为空,则区域内没有文本。代码如下:
Sub CheckTableCells1()
Dim rngCell As Cell
Dim rngRow As Row
Dim rngRange As Range
For Each rngRow In Selection.Tables(1).Rows
For Each rngCell In rngRow.Cells
Set rngRange = rngCell.Range
rngRange.End = rngRange.End - 1
If Len(rngRange.Text) = 0 Then
MsgBox "第" & rngCell.RowIndex & "行,第" & rngCell.ColumnIndex & "列为空."
End If
Next rngCell
Next rngRow
End Sub
方法3
下面的代码与方法1类似,只是在给出空单元格信息之前先选择该单元格。
Sub CheckTableCells2()
Dim rngCell As Cell
Dim rngRow As Row
Dim rngRange As Range
For Each rngRow In Selection.Tables(1).Rows
For Each rngCell In rngRow.Cells
If rngCell.Range.Text = Chr(13) & Chr(7) Then
rngCell.Select
MsgBox "第" & rngCell.RowIndex & "行,第" & rngCell.ColumnIndex & "列为空."
End If
Next rngCell
Next rngRow
End Sub
这些代码很简单,辑录于此,待后续使用时查阅。