Выберите диапазон строк для удаления в Excel 2007. Ошибка времени выполнения 1004? - PullRequest
1 голос
/ 26 июля 2011

Я пытаюсь написать код, который удаляет все строки между 3-й и последней строкой данных на листе.У меня есть несколько коротких строк кода, который сначала ищет последнюю строку, содержащую данные, возвращает номер этой строки.Вычитает 1 из этого.И выбирает диапазон данных от 3-го ряда до 2-го и последнего ряда и пытается удалить их.Но я сталкиваюсь с ошибкой каждый раз, когда запускаю этот код.Есть предложения?

Sheets("Sheet1").Activate
lastrow = (Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp).Row) - 1
Range("3: lastrow").Select  'Error 1004: method range of object _global failed
Selection.Delete Shift:=xlUp 

1 Ответ

0 голосов
/ 26 июля 2011

Использование свойства SpecialCells диапазона:

 Range("A3:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address).Select 

Это будет выбирать блок до последней использованной ячейки.

Редактировать: включить его в вашу программу, чтобы получитьсо второго до последнего выполните некоторые строковые манипуляции с последней ячейкой.

Dim str, str1, str2, add As String
Dim index, num As Integer
str = Range("A1").SpecialCells(xlCellTypeLastCell).Address   'returns say $j$20

index = InStr(2, str, "$")  'find the second dollar sign

str1 = Left(str, index)     'gets the string "$j$"
str2 = Mid(str, index + 1)  'get the string "20" 

num = CInt(str2) 'convert "20" to 20
num = num - 1
add = str1 & CStr(num) 'reattach to form "$j$19"

Range("A3:" & add).Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...