удаление строки с пустыми или нулевыми ячеками
Модератор: Naeel Maqsudov
Эдравствуйте! Подскажите, пожалуйста.Проблема такая. Надо проверить диапазон, если в нем кроме нулей и пустых ячеек ничего нет, то удалить строку.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Нужно удаление всех строк проходяших через этот диапазон, если я правильно понял?
Код: Выделить всё
Dim R As Range, RngEmpty As Boolean
Set R = Range(".......")
For Each ACell In R
RngEmpty = IsEmpty(ACell.Value) Or ACell.Value = 0
If Not RngEmpty Then Exit For
Next
If RngEmpty Then R.EntireRow.Delete
Может я не правильно понял условие, но если нужно проверить строки диапазона (а не весь диапазон) и пустые удалить, то так:
Код: Выделить всё
Dim R As Range, n As Long
Set R = Range("------")
For n = R.Row + R.Rows.Count - 1 To R.Row Step -1
If Application.WorksheetFunction.CountA _
(Range(Cells(n, R.Column), Cells(n, R.Column + R.Columns.Count - 1))) = 0 Then _
Rows(n).Delete
Next n
Я использовала оба варианта, т.к. действительно нужно проверить значения по строкам, а не всего диапазана, но ячейки могут быть нулевые или пустые, поэтому условие должно быть или-или. Спасибо!
Для удаления пустых строк и строк с нулевыми значениями, код должен быть такой:
Код: Выделить всё
Dim R As Range, sR As Range, n As Long
Set R = Range("-----")
For n = R.Row + R.Rows.Count - 1 To R.Row Step -1
Set sR = Range(Cells(n, R.Column), Cells(n, R.Column + R.Columns.Count - 1))
If Application.WorksheetFunction.CountA(sR) - _
Application.WorksheetFunction.CountIf(sR, "=0") = 0 Then _
Rows(n).Delete
Next n