Как изменить код для вставки в следующую пустую строку вместо столбца? - PullRequest
0 голосов
/ 24 сентября 2019

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

Однако код работал отлично, каждая новая партия данных с каждого листа собирается в столбцы иМне нужно, чтобы он вставлялся в строки.

Я нашел части, которые мне нужно изменить, я просто не могу заставить его работать должным образом.

    Set mSh = mWb.Sheets("Raw Data")

    ' Initialize column to paste to
    nxtRow = 1

    ' Loop through all files in the the folder
    fl = Dir(fDir)

    Do While Len(fl) > 0
        ' Open file
        Set dWb = Workbooks.Open(fDir & fl)

        ' Copy data from
        dWb.Sheets(1).Range("A2:AU100").Copy mSh.Cells(1, nxtCol)

        ' Close workbook
        dWb.Close SaveChanges:=True

        ' Increment column counter
        nxtRow = nxtRow + 7

        ' Go to next file
        fl = Dir
    Loop

Вставка данных каждого листа в новые столбцывместо следования в строках

1 Ответ

0 голосов
/ 24 сентября 2019

Могу ли я предложить вам код, который не требует, чтобы ваши рабочие книги открывались / закрывались?

Sub CopyFromAndPaste()

Dim myPath As String: myPath = "C:\Users\....\foldername\"
Dim myExt As String: myExt = "*.xlsx"
Dim myFile As String, FullStr As String
Dim rw As Long: rw = 1
Dim rng As Range

myFile = Dir(myPath & myExt)
With Sheet1 'Change accordingly to your sheet's codename
    Do While myFile <> ""
        FullStr = "'" & myPath & "[" & myFile & "]Sheet1'!R1C1:R100C47"'Change sheetname accordingly
        Set rng = .Range(.Cells(rw, 1), .Cells(rw + 99, 47))
        rng.Value = ExecuteExcel4Macro(FullStr)
        myFile = Dir
        rw = rw + 100
    Loop
End With

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