2015-10-20 4 views
0

Я хотел бы, чтобы удалить все строки из клетки «A1» до «ActiveCell.Address»ActiveCell.Address в пределах диапазона VBA

Попробованного этот код:

Range(" A1:ActiveCell.Address").Delete Shift:=xlUp 

Но я получаю ошибка в этом (ошибка 1004 времени выполнения).

Невозможно ли обратиться к адресу ActiveCell в пределах диапазона?

Если да, есть ли альтернатива?

Является ли этот код неверным?

Спасибо заранее.

ответ

1

В вашем коде вы не оцениваете ActiveCell.Address, поскольку вы положили его внутри строки. Попробуйте с:

Range("A1:" & ActiveCell.Address).Delete Shift:=xlUp 

Кроме того, это будет только удалить ячейки между A1 и ActiveCell. Для удаления строки используйте:

Range("A1:" & ActiveCell.Address).EntireRow.Delete Shift:=xlUp 
+0

Большое спасибо, ваша первая линия {Range ("A1:" & ActiveCell.Address) .Delete сдвига: = xlUp} ** решить мою проблему совершенно ** Ваш secend строка не neccesery для меня! потому что (на данном этапе кода, на этом конкретном листе) у меня есть только значения/текст - это столбец A. (Я должен был упомянуть об этом в моем вопросе). Спасибо за напоминание! – Cornelis

0

Вам не нужно даже адрес для этого:

Range("A1", ActiveCell).Delete Shift:=xlUp 

будет достаточно.

Смежные вопросы