Перебирайте файлы Excel и копируйте те же ячейки в пустую ячейку в новой книге. - PullRequest
0 голосов
/ 01 июля 2019

У меня есть много файлов Excel в папке. У меня есть макросы, которые проходят через каждый файл и копируют N2 и O2 в приложение под названием CopyMyStuff.

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

Workbooks(MyFile).Close savechanges:=True

это создает мне проблему. Если я достану его, он сработает, но у меня останется 50 открытых листов, которые я должен закрыть.

Sub Loop_1()
    Dim wkb As Workbook
    'Adding New Workbook
    Set wkb = Workbooks.Add
    'Saving the Workbook
    wkb.SaveAs "C:\Users\mscarpa\Documents\Automation\COMPILER.xlsx"
    Dim MyFolder As String, MyFile As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        MyFolder = .SelectedItems(1)
        Err.Clear
    End With

    Application.ScreenUpdating = False

    MyFile = Dir(MyFolder & "\", vbReadOnly)
    Do While MyFile <> ""
        Workbooks.Open Filename:=MyFolder & "\" & MyFile, UpdateLinks:=False
        Application.Run "PERSONAL.XLSB!CopyMyStuff"
        Workbooks(MyFile).Close savechanges:=True
        MyFile = Dir

        With wkb
            Set wkst = wkb.Sheets("Sheet1")
            wkst.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
            Application.CutCopyMode = False
            Application.ScreenUpdating = True
        End With
    Loop

    Application.ScreenUpdating = True
End Sub

Я получаю ошибку

Не удалось вставить специальный метод класса диапазона.

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