Rows.Count
дает максимальное количество строк в листе (обычно 1'048'576).
Разделение вашей команды Rows(8).Offset(1, 0).Resize(Rows.Count - 1)
:
Rows(8)
дает вам строку 8 ($8:$8
)
.Offset(1, 0)
дает вам следующую строку ($9:$9
)
.Resize(Rows.Count - 1)
просит изменить размер диапазона, который начинается в строке 9, чтобы он стал «высоким» для 1'048'576 строк.Однако это будет означать строку 9 до строки 1'048'585 , и это будет позади максимального количества строк.
Что вы, вероятно, имели в виду, это удалить до конца вашегоданные.Это не простая задача, чтобы выяснить конец данных, обычно это делается с помощью конструкции, подобной rowCount = Cells(Rows.Count, 2).End(xlUp).Row
.Это (виртуально) перейдет к ячейке B1048576, имитирует клавишу "Ctrl + Up" и (снова виртуально) перейдет к последней строке, содержащей данные в этом столбце.Измените 2
на любой другой номер столбца (A
будет 1 ...), если вы хотите проверить этот столбец.
Попробуйте следующий код:
Dim rowCount As Long
With ActiveSheet
rowCount = .Cells(.Rows.Count, 2).End(xlUp).Row
.Rows(8).Offset(1, 0).Resize(rowCount - 1).EntireRow.ClearContents
End With