すっごく、テーブルの1行を除くすべてを削除する素敵な小さなサブルーチンがありました。
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
ただし、いずれかの呼び出しをコメントアウトすると、どちらでもかまいません。そのテーブルで正しく実行されます。しかし、両方を実行するように依頼すると、どちらも実行されません。
私は何が間違っているのですか?