Sooo,我有一个很好的小程序,它可以删除表中的所有行,但只有一行。VBA子程序在第二次运行时返回错误
Sub ClearFormTableRows(sourceRange, countRange)
Dim rowsCount As Integer, rowRangeName As Object
rowsCount = Application.WorksheetFunction.CountA(countRange)
With sourceRange
Do Until rowsCount = 1
.ListObject.ListRows(2).Delete
rowsCount = rowsCount - 1
If rowsCount = 1 Then Exit Do
Loop
End With
End Sub
直到今天它工作。但是在调用它的主例程中,我添加了另一个调用,对于不同的表格使用相同的语法,现在它不会执行任何操作,会导致错误9子例程超出范围。 它突出显示的是这一个:.ListObject.ListRows(2).Delete
但是,如果我注释掉任何一个调用,哪个都没关系,它会在该表上正确执行。但要求它既做,也不做。
我在做什么错了?
P所有相关的代码。 –
你的意思是“下标超出范围”?最有可能的是,excel抱怨你的列表对象没有第二行,所以你如何分配你的'rowsCount'变量有一个问题。 –