VBA Не могу скопировать лист из книги, которую открываю через диалоговое окно VBA

Помогите, пожалуйста, не могу скопировать лист вакансии из книги, которую открываю через диалоговое окно в активную книгу Лист Microoft Excel.xlsm, где будет писаться макрос, вылезает ошибка, пробовала тремя разными способами( 2 из них закомментированы), в идеале потом книгу, из которой копировался лист " Вакансии" надо закрыть. А активной сделать книгу Лист Microoft Excel.xlsm

a=Application.GetOpenFilename_
("Excel files(*.xls*),*xls*",1,_
"Выберите Excel файл, скаченный с hh",,False)
'Sheets("Вакансии").Copy After:=WorkBooks("Лист Microoft Excel.xlsm").Sheets("Лист1")
WorkBooks("Лист Microoft Excel.xlsm").Sheets("Лист1").Value=a.Sheets("Вакансии").Value
'Sheets("Вакансии").Range("A:U").Copy After:=WorkBooks("Лист Microoft Excel.xlsm").Sheets("Лист1").Range("A:U")
Sheets("Лист1").Activate

введите сюда описание изображения


Ответы (1 шт):

Автор решения: vikttur

Текущую книгу - в переменную. Потом открываем другую книгу и из нее (открытой активной книги) копируем лист

Sub CopySheet()
    Dim wThisBook As Workbook
    Dim sFName As String
    
    Set wThisBook = ThisWorkbook
    sFName = Application.GetOpenFilename("Excel files(*.xls*),*xls*", 1, "Выберите Excel файл, скаченный с hh", , False)
    
    With Workbooks.Open(Filename:=sFName)
        .Worksheets("Вакансии").Copy Before:=wThisBook.Sheets(1)
        .Close
    End With
    
    Set wThisBook = Nothing
End Sub
→ Ссылка