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

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

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

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

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


person phan    schedule 06.08.2012    source источник


Ответы (4)


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

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

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

person danielpiestrak    schedule 06.08.2012
comment
вы можете использовать макрос, vba - person Medo Medo; 06.01.2017

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

person Zairja    schedule 07.08.2012

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

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
person Grikisjan    schedule 13.04.2017
comment
Это помогло мне. Необязательный конечный столбец и/или ряд были бы еще круче. ;) - person Joe Johnston; 23.05.2017

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

person Philip Ostle    schedule 13.10.2017