使用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