Excel VBA – 循环一个ListObject列

晚上SO,

我试图循环访问listobject表中的特定列。 我已经执行了这一点,它完美的作品,除非列是空的(即表没有行)。 这将是非常罕见的,但自然这个工作簿的主副本将是空白的,因此返回空对象的错误91。

我怎样才能使代码执行,即使表是空的没有返回错误91? 我知道我可以使用错误恢复下一步,但这就像采取止痛药,它不解决问题。

For Each cell In Worksheets(3).ListObjects("tblTableName").ListColumns(2).DataBodyRange.Cells 'Do some stuff here Next 

如果表包含数据,则上述代码执行正常,但如果表为空,则会抛出错误91,因为它始终位于主副本中。

这段代码适用于我:

 Sub test() Dim L As ListObject Set L = Range("a1").ListObject Dim q As Range Set q = L.DataBodyRange If Not q Is Nothing Then MsgBox "There's something!" Else MsgBox "There's nothing!" End If End Sub 

也可以使用:

  Dim m As Boolean m = L.DataBodyRange Is Nothing