2016-11-17 2 views
1

Я хочу очистить использованный диапазон Sheet1, но начиная с A8 и вниз. Я хочу оставить данные в A7 и в тактике, но все, что ниже этого диапазона, убирается. Я пробовал этот синтаксис, но он не доходит до конца книги («используемый диапазон»). И да, последняя ячейка используемого диапазона, прежде чем A65536Очистить используемый диапазон Начиная с конкретной ячейки

For LastRow = 2 To Worksheets("Sheet1").Range("A65536").End(xlUp).Row 
    Next LastRow 
Range("A" & LastRow).ClearContents 

Как я могу очистить все ячейки с данными из ряда A8 до конца используемого диапазона?

ответ

1

Вы близки попробовать ниже - таким образом, вы не должны указать «конец диапазона». Это удалит все ниже строки 8

With Sheets("Sheet1") 
    .Rows(8 & ":" & .Rows.Count).Delete 
End With 
+0

Отлично, Мне нравится, что мне не нужно указывать конечную ячейку для поиска в –

+3

. Одна вещь, о которой нужно знать: есть недостаток в использовании 'Delete', а не' ClearContents' - любая формула в первых 7 строках, относящаяся к более поздние строки будут разбиты (например, если D7 содержит '= SUM (D8: D5000)', он будет заменен на '= SUM (#REF!)'). Это не похоже на проблему для OP, но другие пользователи могут его поймать. – YowE3K

0

Ваш код (кроме как ничего в цикле) создает только адрес для одной ячейки. Просто построить Range как 8:42 или что-то последняя строка и ясно, что:

With Worksheets("Sheet1") 
    .Range("8:" & .Range("A65536").End(xlUp).Row).ClearContents 
End With 
0

или версии агностиком (который обслуживает версии Excel у вас есть, это Excel-2003, который имеет 2^16 или 65536 строк)

Range([a8], Cells(Rows.Count, "A")).EntireRow.ClearContents 
Смежные вопросы