+ Ответить в теме
Показано с 1 по 4 из 4

Тема: vba excel

  1. #1
    rovi221 is on a distinguished road
    Регистрация
    19.02.2008
    Возраст
    34
    Сообщений
    4
    Вес репутации
    0

    По умолчанию vba excel

    задача вроде простая
    перебрать заполненые строки листа
    при определенных условиях (например в ячейке 1 колонки слово Ошибка)
    удалить эту строку и предыдущию

  2. По умолчанию

    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    developer AlexZZZ is on a distinguished road Аватар для AlexZZZ
    Регистрация
    31.05.2007
    Адрес
    Москва и область
    Возраст
    39
    Сообщений
    236
    Вес репутации
    8

    По умолчанию Re: vba excel

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

    Код :
        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
    Последний раз редактировалось AlexZZZ; 02.06.2009 в 16:22.

  4. #3
    rovi221 is on a distinguished road
    Регистрация
    19.02.2008
    Возраст
    34
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: vba excel

    alexZZZ
    спасибо работает
    извините за навязчивость
    а как переместить ошибку в конец предедущей строки,
    а строку с ошибкой удалить

  5. #4
    developer AlexZZZ is on a distinguished road Аватар для AlexZZZ
    Регистрация
    31.05.2007
    Адрес
    Москва и область
    Возраст
    39
    Сообщений
    236
    Вес репутации
    8

    По умолчанию Re: vba excel

    Если я правильно понял Вашу задачу, то так:
    Код :
        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
    Конец строки в данном случае - это последний столбец используемого диапазона активного листа.
    Последний раз редактировалось AlexZZZ; 03.06.2009 в 11:31.

+ Ответить в теме

Похожие темы

  1. Excel: умный импорт из Excel листа в таблицу Access
    Всем привет, помогите разобраться с нижеизложенным. Что Дано: Есть книга Excel "C:\Data\test.xls". В этой книге есть лист "output", с таблицей...
    от Kokain в разделе MS Office и VB(A).

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения