Страницы: 1
RSS
Перенос строки с листа на лист по условию
 
Добрый день!
Прошу помощи по задаче - с одного листа книги необходимо перенести строки на другой лист при определенном условии в строке, при этом в исходном листе вырезанную строку удалить чтобы не было пустот, в итоговом листе строки добавлять определяя последнюю заполненную.

Пример в файле, макрос как-то работает, но не пробегает по всем строкам, что я не так сделал, помогите пожалуйста
 
ilnur Проблем не вижу, вроде работает как Вы хотели. В чем конкректно ошибка, опишите пример.
 
skais675, ну если на примере файла: первый запуск - строки 6 и 8 уходят корректно. Если в три оставшиеся строки поставить "1" и запустить, то строка 4 остается в исходном листе. Что-то с определением последней строки накосячил, перепрыгивает шаг
 
Ваша ошибка в том что удаляя строку, они смещаются вверх, и Вы пропускаете следующую после удаленной.
Код
Sub Perenos()
    Application.ScreenUpdating = False
    LR1 = Cells(Rows.Count, 1).End(xlUp).Row
    LR2 = Sheets("Лист2").Cells(Sheets("Лист2").Rows.Count, 1).End(xlUp).Row+1
    For i = 2 To LR1
        If Cells(i, 5) = 1 Then
            arr = Cells(i, 1).Resize(, 5).Value
            Sheets("Лист2").Cells(LR2, 1).Resize(, 5) = arr
            LR2 = LR2 + 1
        End If
    Next i
    For i = LR1 To 2 Step -1
        If Cells(i, 5) = 1 Then Rows(i).Delete
    Next
    Application.ScreenUpdating = True
End Sub
Изменено: skais675 - 18.09.2019 13:23:04
 
skais675,  спасибо, работает, но при каждом новом запуске затирается новым значением последняя заполненная строка на листе2
На старте если указать первую пустую строку то все кажется работает. Еще раз спасибо!!!
LR2 = Sheets("Лист2").Cells(Sheets("Лист2").Rows.Count, 1).End(xlUp).Row + 1
 
ilnur, поправил.
Страницы: 1
Наверх