Удалить пустые строки до переменной LastRow
Я пытаюсь удалить все пустые строки до переменной LastRow
. Ниже вы найдете мои образцы. Тот, который работает , кажется серьезным обходным путем, и я считаю, что он может быть короче/быстрее, у меня просто нет знаний о том, как это сделать.
Works-серьезный обходной путь
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 to LastRow
If Range("A" & i).value = "" then
Range("A" & i).value = "xxxxx"
End if
Next i
For i = 1 to LastRow
If Range("A" & i).value = "xxxxx" then
Range("A" & i).Delete
i = i - 1
End if
Next i
Бесконечный цикл
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 to LastRow
If Range("A" & i).value = "" then
Range("A" & i).Delete
i = i - 1
End if
Next i
2 ответа:
Во-первых, я предполагаю, что у вас есть расчет ручной
Во-вторых, у вас есть цикл for, который будет 1=i+1, и вы делаете i=i-1, таким образом, i=i+1-1 бесконечный цикл. Это также должно произойти в рабочем обходном пути (та же ошибка).Вы можете для цикла с выбранным шагом, также отрицательные. Поскольку удаление сокращает диапазон, вы можете начать снизу и работать теперь
Код выглядит так:
LastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = LastRow to 1 Step -1 If Range("A" & i).value = "" then Range("A" & i).Delete End if Next i
Если вы хотите удалить всю строку, используйте
Range("A" & i).EntireRow.Delete
вместо этого.