vba excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
rovi221
Сообщения: 4
Зарегистрирован: 19 фев 2008, 11:48

задача вроде простая
перебрать заполненые строки листа
при определенных условиях (например в ячейке 1 колонки слово Ошибка)
удалить эту строку и предыдущию
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Да, вроде, действительно, не сложная.

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

    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
rovi221
Сообщения: 4
Зарегистрирован: 19 фев 2008, 11:48

alexZZZ
спасибо работает
извините за навязчивость
а как переместить ошибку в конец предедущей строки,
а строку с ошибкой удалить
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Если я правильно понял Вашу задачу, то так:

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

    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
Конец строки в данном случае - это последний столбец используемого диапазона активного листа.
Ответить