Это способ удаления строки № 5 из таблицы с именем TableName
:
Sub TestMe()
Range("TableName[#All]").ListObject.ListRows(5).Delete
End Sub
Что касается конкретной проблемы, то в Urng
имеются строки, которыекак внутри, так и вне стола.Таким образом, они не могут быть удалены с помощью .Delete
.Напишите это до Urng.Delete
, чтобы увидеть себя:
Urng.Select
Stop
Unrg.Delete
В примере вы можете увидеть, что строка 6
находится в таблице, а строка 18
находится вне таблицы:
Что касается удаления двух строк, которые не расположены близко друг к другу в таблице, я думаю, что единственный способ - это цикл.Это немного медленнее, но работает:
Sub TestMe()
Dim cnt As Long
Dim arrRows As Variant: arrRows = Array(10, 12)
Dim table As ListObject: Set table = ActiveSheet.ListObjects("SomeTable")
For cnt = UBound(arrRows) To LBound(arrRows) Step -1
table.ListRows(arrRows(cnt)).Delete
Next cnt
'This works only when the rows are after each other, e.g. 2,3,4
table.Range.Rows("2:4").Select
Stop
table.Range.Rows("2:4").Delete
End Sub