标签:Word VBA
可以使用VBA代码来判断文档中表格内的单元格是否为空。下面的代码检查所选文档内容中表格内的单元格,并给出空单元格的信息。
方法1
基于空单元格由Chr(7)跟随的段落标记组成,可以使用Range对象检测空单元格,代码如下:
代码语言:javascript复制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变量,将其设置为标记每个单元格的区域,移动到区域的末端,使单元格末端标记和段落标记不包含在区域中(要执行此操作,只需将其移动一个字符),并获取区域内的文本。如果单元格为空,则区域内没有文本。代码如下:
代码语言:javascript复制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类似,只是在给出空单元格信息之前先选择该单元格。
代码语言:javascript复制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
这些代码很简单,辑录于此,待后续使用时查阅。