使用VBA将行添加到Excel表

我有一个Excel工作表(称为费计划 – 标准input)与一个表(称为StandardInput)和一个button,调用VBA Sub添加一个新的行到表的底部:

Public Sub AddStandardInputRow() Dim standardInputTable As ListObject Dim newRow As ListRow Set standardInputTable = ThisWorkbook.Worksheets("Fee Planner - Standard Input").ListObjects("StandardInput") Set newRow = standardInputTable.ListRows.Add Set standardInputTable = Nothing End Sub 

我似乎从运行这个代码得到的随机结果,有时它完美的几行,然后开始出现错误,有时从第一次单击button时出现错误。 抛出的错误是

被调用的对象已经与客户端断开连接。
其次是
应用程序或对象定义的错误
我只得到第一个错误,但之后,我一直得到1004错误。 SOmetimes我重新启动Excel后立即得到第一个错误。

我猜是有一些潜在的原因,但我看不到它是什么。

如果你使用:

 Sub M_snb() With Sheet1.ListObjects(1).Range sheet1.Cells(.Rows(.Rows.Count + 1).Row, .Columns(1).Column) = " " End With End sub 

所以看起来问题在于线条

 Dim newRow As ListRow ... Set newRow = standardInputTable.ListRows.Add 

看来在newRow对象的代码中有一个引用泄漏。

我尝试了包括一个

 Set newRow = Nothing 

在方法的倒数第二行上,这个方法更好,但仍然不是很好,现在我已经完全移除了所有对newRow对象的引用,所以这个方法只是调用了standardInputTable.ListRows.Add ,这似乎更加可靠:

 Public Sub AddStandardInputRow() Dim standardInputTable As ListObject Set standardInputTable = ThisWorkbook.Worksheets("Fee Planner - Standard Input").ListObjects("StandardInput") standardInputTable.ListRows.Add Set standardInputTable = Nothing End Sub