Во вложении два файла: Book1 - из этого файла с листа Invoices копируем. Book2 - в этом файле создаём новый лист и на этот лист нужно вставить данные.
Во время запуска макроса оба файла открыты.
Мне нужно поправить макрос, который уже копирует.
Не знаю, как указать название листа, куда копировать. Название каждый раз разное. Все зависит от ячейки Е5 в Book1.
Ошибка в этой строке:
Sheets(Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("E5")).Select
Макрос
Sub AddCopy()
Windows("Book1").Activate
Sheets("Invoices").Select
Cells.Select
Selection.Copy
Windows("Book2.xlsm").Activate
Sheets.Add(Before:=Worksheets("Sold-to for report")).Name = Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("E5")
Sheets(Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("E5")).Select
Cells.Select
ActiveSheet.Paste
Windows("Book1.xlsm").Activate
Sheets("Sheet1").Select
Range("A1").Select
End Sub
[вложение удалено администратором]
Макрос
Sub AddCopy()
Dim bk_src As Workbook, bk_res As Workbook, sh_res As Worksheet
' Присваиваем имена файлам, с которыми надо работать.
Set bk_src = Workbooks("Book1.xlsm")
Set bk_res = Workbooks("Book2.xlsm")
' Создаём в файле-результате лист и присваиваем листу vba-имя "sh_res".
Set sh_res = bk_res.Worksheets.Add(Before:=bk_res.Worksheets("Sold-to for report"))
' Присваиваем новому листу имя.
sh_res.name = bk_src.Worksheets("Sheet1").Range("E5").Value
' Вставляем на новый лист данные.
' Копируем все ячейки листа "Invoices".
bk_src.Worksheets("Invoices").Cells.Copy
' Вставляем данные на лист-результат.
sh_res.Paste
' Если нужно, переходим в нужный файл, на нужный лист, в нужную ячейку.
' Возможно это не потребуется сделать, если только убрать последствия копирования -
' после копирования могут быть выделены ячейки.
Application.Goto bk_src.Worksheets("Sheet1").Range("A1"), True
End Sub