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'變量有一個問題。 –