Копировать и вставить цикл на основе значения ячейки

Макрос создан ниже благодаря помощи другого, который работает.

По сути, он принимает значение ячейки в столбце А и, если лист нене существует с этим именем клетки, создает его. Затем он вставляет все строки данных, которые имеют соответствующее значение ячейки на этот лист. То есть. если ячейка содержит следующее:

column a  column b
dc00025   data value

Если dc00025 не 'не существует, этоЯ сделаю лист. И вставьте все строки с помощью dc00025 в A.

Это работает отлично. Однако я заметил, что когда вы запускаете этот макрос после того, как лист уже создан, по какой-то причине он добавляет тысячи столбцов, значительно замедляя Excel.

Чтобы это исправить, можно ли будет изменить скрипт так, чтобы он копировал только столбцы b, а не всю строку? Вставить их, начиная с А3, было бы предпочтительнее, но яЯ не уверен, как это исправить.

Заранее спасибо.

 Sub CopyCodes()

    Application.ScreenUpdating = False
    Dim rCell As Range
    Dim lastrow As Long
    lastrow = Sheets("Data").UsedRange.Rows.Count
    For Each rCell In Worksheets("Data").Range("A2:A" & lastrow).SpecialCells(xlCellTypeConstants)
        If Not SheetExists(rCell.Value) Then
            With Worksheets.Add(, Worksheets(Worksheets.Count))
            .Name = rCell.Value
            End With
        End If

        Worksheets("Data").Rows(1).EntireRow.Copy Worksheets(rCell.Value).Rows(1)
        Worksheets(rCell.Value).Range("A" & Rows.Count).End(xlUp)(2).EntireRow.Value = _
        rCell.EntireRow.Value

    Next rCell
    Application.ScreenUpdating = True

End Sub
Function SheetExists(wsName As String)
    On Error Resume Next
    SheetExists = Worksheets(wsName).Name = wsName
End Function

Ответы на вопрос(1)

Ваш ответ на вопрос