zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Word VBA技术:判断表格中的单元格是否为空

2023-03-07 09:14:57 时间

标签: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

这些代码很简单,辑录于此,待后续使用时查阅。