Строка
Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Rows.Count).EntireRow.Delete
даст вам именно то, что вы просите, но вы должны спросить себя, действительно ли эффективно удалять более 1 000 000 строк.Можете ли вы определить последнюю использованную строку в Worksheets("Sheet 2")
, используя метод (xlUp)
или (xlDown)
, чтобы определить гораздо меньший диапазон для удаления?
Worksheets("Sheet 2").Range("B" & Worksheets("Sheet 1").Range("B6") & ":B" & Worksheets("Sheet 2").Range("B" & Rows.Count).End(xlUp).Row).EntireRow.Delete
Кроме того, судя по вашему использованию, ваша единственная цельудаление этих строк означает очистку содержимого, в этом случае использование .ClearContents
вместо .Delete
будет еще быстрее.