Как l oop для нескольких столбцов в VBA - PullRequest
0 голосов
/ 17 марта 2020

У меня есть этот код ниже, чтобы скопировать данные с одного листа и вставить его на другой лист. Тем не менее, мне нужно вставить около 100 столбцов данных. Как заставить мой l oop работать 100 раз, чтобы мне не приходилось копировать этот код 100 раз?

Спасибо

Sub Macro1()

    Dim lastrow as long, erow as long

    lastrow = Sheet4.Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 to lastrow
        Sheets4.cells(i,1).Copy
        erow = Sheet7.Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Row

        Sheet4.Paste Sheet7.Cells(erow,1)

        Sheet4.Cells(i,2).Copy
        Sheet4.Paste Sheet7.Cells(erow,2)

1 Ответ

0 голосов
/ 18 марта 2020

Вы ничего не говорите, и я больше не могу оставаться ... Если вам не нужно копировать формат, попробуйте следующий код. Он скопирует все столбцы Sheet4, начиная со второй строки, в первую пустую строку Shee77. Это намного быстрее, чем вы пытались, используя массив и удаляя весь контент сразу ...

Sub Macro1_bis()
 Dim arrSh4 As Variant, sh7Row As Long
 arrSh4 = Sheet4.UsedRange.Offset(1).value
 sh7Row = Sheet7.Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
 Sheet7.Range("A" & sh7Row).Resize(UBound(arrSh4, 1), UBound(arrSh4, 2)).value = arrSh4
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...