Detect whether a table cell is empty
Article contributed by Bill Coan
Method 1
Use the range object to detect empty cells based on the idea that an empty cell consists of a paragraph mark followed by Chr(7).
Sub CheckTableCells()
Dim oCell As Cell
Dim oRow As Row
For Each oRow In
Selection.Tables(1).Rows
For Each oCell
In
oRow.Cells
If
oCell.Range.Text = Chr(13) & Chr(7)
Then
MsgBox
oCell.RowIndex & " " & oCell.ColumnIndex & " is empty."
End If
Next oCell
Next oRow
End Sub
Method 2
Use a range variable, set it to mark each cell's range; move the end of the range so that the end of cell marker and paragraph marker are not included in the range; (to do this you only have to move it by one character); and get the text within the range. If the cell is empty there will be no text within the range
Sub CheckTableCells()
Dim oCell As Cell
Dim oRow As Row
Dim MyRange As Range
For Each oRow In
Selection.Tables(1).Rows
For Each oCell
In
oRow.Cells
Set
MyRange = oCell.Range
MyRange.End = MyRange.End - 1
If
Len(MyRange.Text) = 0 Then
MsgBox
oCell.RowIndex & " " & oCell.ColumnIndex & " is empty."
End If
Next oCell
Next oRow
End Sub
Method 3
Here's some code that is similar, but which selects each cell before announcing whether it is empty.
Sub CheckTableCells()
Dim oCell As Cell
Dim oRow As Row
Dim MyRange As Range
For Each oRow In
Selection.Tables(1).Rows
For Each oCell
In
oRow.Cells
If
Selection.Text = Chr(13) & Chr(7)
Then
oCell.Select
MsgBox
oCell.RowIndex & " " & oCell.ColumnIndex & " is empty."
End If
Next oCell
Next oRow
End Sub