Скопируйте данные из рабочей книги с несколькими рабочими листами в несколько новых рабочих книг, используя только одну строку на каждом рабочем листе. - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть рабочая книга с несколькими рабочими листами с несколькими строками на каждой рабочей таблице.

Мне нужны новые рабочие книги с тем же количеством рабочих листов и одной строкой на каждом рабочем листе.

пример: если рабочая книга содержит 8 рабочих листов по 200 строк в каждой рабочей таблице, результатом будет 200 рабочих книг, содержащих 8 рабочих листов с 1 строкой.

Источник Рабочая тетрадь
enter image description here

Рабочая тетрадь (200 рабочих тетрадей)
enter image description here

Sub Method()

    Dim i As Long
    Dim TotalRows As Long

    Application.ScreenUpdating = False

    myPath = ActiveWorkbook.Path
    If Right(myPath, 1) <> "\" Then myPath = myPath & "\"

    'Count the total rows in the source sheet
    TotalRows = Range(Range("A2"), Range("A2").End(xlDown)).Rows.Count         
    For i = 1 To TotalRows

        With Sheets("Report1")
            .Rows(2 & ":" & .Rows.Count).ClearContents 'Where X is a variable that = the row number
        End With

        'Copy range to clipboard
        Workbooks("Source.xlsx").Worksheets("Source1").Range("A" & i).Copy

        'PasteSpecial to paste values, formulas, formats, etc.
        Workbooks("Reports.xlsb").Worksheets("Report1").Range("A2" & i).PasteSpecial Paste:=xlPasteValues
        Filename = "ADMS_" & "BTS" & ADMS & ".xlsx"     'Name of saved file

        Application.DisplayAlerts = False

        ActiveWorkbook.SaveAs Filename:=myPath & Filename, _
            FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        'ActiveWorkbook.Close True
        Application.DisplayAlerts = True

    Next i

    Application.ScreenUpdating = True

End Sub

1 Ответ

0 голосов
/ 29 апреля 2019

Нашли решение своей проблемы?Если нет, я предлагаю следующее:

Цикл в каждой строке от строки 2 до последней строки.Внутри основного цикла создайте рабочую книгу и выполните дополнительный цикл, чтобы добавить столько листов, сколько необходимо, а затем закройте этот цикл.Сделайте еще один вторичный цикл, чтобы скопировать строку заголовка и текущую (итерированную) строку в каждый вновь созданный лист, затем закройте этот цикл.Сохранить рабочую книгу.

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