VBA - Как скопировать и данные с листа в определенном состоянии на последний лист - PullRequest
0 голосов
/ 29 апреля 2020

Я новичок в VBA и пытаюсь создать макрос для работы, чтобы облегчить жизнь всем. Моя цель - скопировать строки (или просто скопировать данные в первом столбце, когда второй столбец равен «0») с одного листа с именем «Массовое обновление» с условием столбца B, имеющего значение «0», на последний лист, в нижней части листа после данных. Я не знаю, как ссылаться на последнее имя листа. Вот код, который я сделал (пожалуйста, не судите меня, так как я все еще новичок и гуглюсь), который, как я знаю, совершенно неверен ...

Public Sub CNPPrevOOS()
    Worksheets("Bulk Update").Select

    a = Worksheets("Bulk Update").Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To a

        If Worksheets("Bulk Update").Cells(i, 2).Value = "0" Then


        Selection.Copy

        ThisWorkbook.Worksheets(ThisWorkbook.Sheets.Count).Range("A1").Value = 100

        Range("A30000").Select

        Selection.End(xlUp).Select

        ActiveCell.Offset(1, 0).Select

        ActiveSheet.Paste

        End If
    Next

End Sub

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете попробовать приведенный ниже код. Данные фильтруются для столбца 2 = 0. Только последние строки копируются и вставляются в последний лист

Public Sub CNPPrevOOS()

Worksheets("Bulk Update").Select

a = Worksheets("Bulk Update").Cells(Rows.Count, 1).End(xlUp).Row

'Filters the data where column 2 = 0 
ActiveSheet.Range(Cells(1, 1), Cells(a, 2)).AutoFilter Field:=2, Criteria1:="0", Operator:=xlFilterValues

'Select only the filtered cells and copy
Range(Cells(2, 1), Cells(a, 1)).SpecialCells(xlCellTypeVisible).Select
Selection.Copy

 ThisWorkbook.Worksheets(ThisWorkbook.Sheets.Count).Select
 ActiveSheet.Paste Destination:=Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)


        End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...