Как удалить все строки ниже строки X в VBA/Excel?

У меня есть длинная переменная X, содержащая число. Скажите это 415.

Как удалить все на листе из строки 415 и ниже?

Я хочу, чтобы моя таблица была чистой в строке 415 и все остальное, что могло бы быть ниже.

Как мне это сделать? Спасибо.

Ответы

Ответ 1

Похоже, что что-то вроде ниже будет соответствовать вашим потребностям:

With Sheets("Sheet1")
    .Rows( X & ":" & .Rows.Count).Delete
End With

Где X - переменная, которая = номер строки (415)

Ответ 2

Другой вариант - Sheet1.Rows(x & ":" & Sheet1.Rows.Count).ClearContents (или .Clear). Причина, по которой вы, возможно, захотите использовать этот метод вместо .Delete, - это то, что любые ячейки с зависимостями в удаленном диапазоне (например, формулы, которые относятся к этим ячейкам, даже если они пусты), будут отображаться #REF. Этот метод сохранит ссылки на ссылки на очищенные ячейки.

Ответ 3

Эта функция очистит данные листа, начиная с указанной строки и столбца:

Sub ClearWKSData(wksCur As Worksheet, iFirstRow As Integer, iFirstCol As Integer)

Dim iUsedCols As Integer
Dim iUsedRows As Integer

iUsedRows = wksCur.UsedRange.Row + wksCur.UsedRange.Rows.Count - 1
iUsedCols = wksCur.UsedRange.Column + wksCur.UsedRange.Columns.Count - 1

If iUsedRows > iFirstRow And iUsedCols > iFirstCol Then
    wksCur.Range(wksCur.Cells(iFirstRow, iFirstCol), wksCur.Cells(iUsedRows, iUsedCols)).Clear
End If

End Sub

Ответ 4

Любая ссылка на "Строка" должна использовать "long" not "integer", иначе она будет переполняться, если в электронной таблице много данных.