Страница 1 из 1

удаление строки с пустыми или нулевыми ячеками

Добавлено: 24 май 2009, 23:08
Tana_L
Эдравствуйте! Подскажите, пожалуйста.Проблема такая. Надо проверить диапазон, если в нем кроме нулей и пустых ячеек ничего нет, то удалить строку.

Re: удаление строки с пустыми или нулевыми ячеками

Добавлено: 24 май 2009, 23:22
Naeel Maqsudov
Нужно удаление всех строк проходяших через этот диапазон, если я правильно понял?

Код: Выделить всё

  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

Re: удаление строки с пустыми или нулевыми ячеками

Добавлено: 25 май 2009, 12:17
AlexZZZ
Может я не правильно понял условие, но если нужно проверить строки диапазона (а не весь диапазон) и пустые удалить, то так:

Код: Выделить всё

    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

Re: удаление строки с пустыми или нулевыми ячеками

Добавлено: 26 май 2009, 13:04
Tana_L
Я использовала оба варианта, т.к. действительно нужно проверить значения по строкам, а не всего диапазана, но ячейки могут быть нулевые или пустые, поэтому условие должно быть или-или. Спасибо!

Re: удаление строки с пустыми или нулевыми ячеками

Добавлено: 26 май 2009, 15:58
AlexZZZ
Для удаления пустых строк и строк с нулевыми значениями, код должен быть такой:

Код: Выделить всё

    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