Excel VBA运行时错误91

我希望有人可能会看到下面的代码的问题,这不断产生一个运行时错误91,对象variables或variables未设置。

我有以下几点:

Dim sht As Worksheet Dim LastRow As Long, UseRow As Long Set sht = ThisWorkbook.Worksheets("Basic Data History") LastRow = sht.ListObjects("Basic_Data_Table").Range.Rows.Count UseRow = LastRow Set test = sht.ListObjects("Basic_Data_Table").DataBodyRange.Cells(2, 1) 

LastRow作业完美。 我没有问题。

设置testing线上发生错误。 我也尝试过使用DataBodyRange(2,1),而不使用“单元格”。 我不认为这是一个超出范围的问题(我已经玩过参数)。

我添加了这个“设置testing”行来帮助debugging下面的“if”语句产生相同的错误。 我希望我的问题是,也许我没有正确设置对象(我正在使用sht.listobjects …在if语句中)。 我也尝试拿出“套”来看看是否会起作用。 没有运气。

我在这个网站和其他网站上看过很多不同的帮助文章。 我实际上是从TheSpreadsheetGuru上的一些东西来修改的。

我现在已经达到了“坚持”的地步:我写的东西没有什么不对,而且我的耳朵里涌出了一些东西……是的,我知道这是错误的,从来没有帮助。

任何想法,我在做什么错??? 提前致谢!!!

如果表不包含任何数据,则其DataBodyRange为Nothing。 将任何数据添加到表中时,DataBodyRange将设置为一个范围,即使稍后删除数据,它也将保持初始化状态。

在你的情况下,最简单的解决scheme可能是在做任何事情之前testingDataBodyRange,

 If Not sht.ListObjects("Basic_Data_Table").DataBodyRange Is Nothing Then your code here End if 

要么

 If sht.ListObjects("Basic_Data_Table").DataBodyRange Is Nothing Then Exit Sub 

或者使用On Error GoTo并检查错误91。