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

vba excel

Добавлено: 02 июн 2009, 16:14
rovi221
задача вроде простая
перебрать заполненые строки листа
при определенных условиях (например в ячейке 1 колонки слово Ошибка)
удалить эту строку и предыдущию

Re: vba excel

Добавлено: 02 июн 2009, 17:16
AlexZZZ
Да, вроде, действительно, не сложная.

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

    Dim n As Long
    For n = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count _
        To ActiveSheet.UsedRange.Row Step -1
        If Cells(n, 1).Value = "Ошибка" Then
            Rows(n).Delete
            If n > 1 Then Rows(n - 1).Delete
        End If
    Next n

Re: vba excel

Добавлено: 03 июн 2009, 09:56
rovi221
alexZZZ
спасибо работает
извините за навязчивость
а как переместить ошибку в конец предедущей строки,
а строку с ошибкой удалить

Re: vba excel

Добавлено: 03 июн 2009, 12:27
AlexZZZ
Если я правильно понял Вашу задачу, то так:

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

    Dim n As Long
    For n = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count _
        To ActiveSheet.UsedRange.Row Step -1
        If Cells(n, 1).Value = "Ошибка" Then
             If n > 1 Then Cells(n - 1, ActiveSheet.UsedRange.Column - 1 + _
            ActiveSheet.UsedRange.Columns.Count).Value = "Ошибка"
            Rows(n).Delete
        End If
    Next n
Конец строки в данном случае - это последний столбец используемого диапазона активного листа.