Копировать содержимое из определенного листа в рабочей книге на другой конкретный лист в другой рабочей книге в том же каталоге - PullRequest
0 голосов
/ 18 марта 2019

Справочная информация:
У меня есть две рабочие книги в одном каталоге с разными листами в каждой.

Я хотел бы открыть book2.xlsx, выполнить VBA, скопировать весь контент из "sheet1" в book1.xls. После этого book1.xls должен быть закрыт автоматически.

У меня есть код, который перемещает содержимое рядом с листом, затем я должен переименовать этот лист в нужный. Проблема с этим заключается в том, что формулы на другом листе не будут работать должным образом. Код выглядит следующим образом:

Sub XLVBACopyFiles()
    Dim MonthlyWB As Variant
    Dim FileName As String

    FileName = ActiveWorkbook.Name

    Path = ActiveWorkbook.Path & "\"

    Application.DisplayAlerts = False
    Application.EnableEvents = False

    'Copy the sheet1 next to sheet2 in the current workbook

    Application.Workbooks.Open (Path & "book1.xls")
        Sheets(Array("sheet1")).Select
        Sheets("sheet1").Activate
        Sheets(Array("sheet1")).Move After:=Workbooks( _
            FileName).Sheets("sheet2")

    Application.EnableEvents = True
    Application.DisplayAlerts = True

    Workbooks(FileName).Save
    ' Workbooks(FileName).Close
End Sub

Любая помощь с этим будет принята с благодарностью.

1 Ответ

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

Если вы хотите, в соответствии с вашим комментарием выше, вставить содержимое в «sheet2 самой», обновите код выше:

Application.Workbooks.Open (Path & "book1.xls")
        Sheets(Array("sheet1")).Select
        Sheets("sheet1").Activate
        **Sheets(Array("sheet1")).Move After:=Workbooks( _
            FileName).Sheets("sheet2")**

до

  Application.Workbooks.Open (Path & "book1.xls")
            Sheets(Array("sheet1")).Select
            Sheets("sheet1").Activate
            'Next 2 lines will select the range of content to be copied, and CTRL+C it. Edit it to your desire range
            Range("A1:A5").Select
            Selection.Copy
            Sheets("Sheet2").Select
            Range("A1").Select ' In this line you should choose which cell to start pasting
            ActiveSheet.Paste

Также,чтобы закрыть книгу, используйте:

Workbooks("book1.xls").Close SaveChanges:=True

Обратите внимание на опцию SaveChanges, выберите True / False, если вы хотите сохранить эту книгу или нет

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