Подстрочный индекс выходит за пределы диапазона, потому что "yestbook.xlsm"
не существует в глобальной коллекции Workbooks
, которая в этом случае ограничена активным экземпляром Excel (т. Е. Экземпляром, из которого этот кодвыполняется).Вы открыли две рабочие книги, каждая в новом и отдельном экземпляре Excel, что создает дополнительные проблемы, потому что вы не можете Copy
рабочих таблиц между экземплярами, подобными этому.
Это должно работать, если только нет особых причин, по которым каждый файл должен открываться в своем собственном экземпляре:
Dim wb1 As Workbook, wb2 as Workbook
Dim fd As FileDialog
Dim shtpath As String
Dim ws As Worksheet
Set fd = Application.FileDialog(msoFileDialogFilePicker)
If fd.Show = True Then
If fd.SelectedItems(1) <> vbNullString Then
shtpath = fd.SelectedItems(1)
End If
Else
End
End If
Set wb1 = Workbooks.Open("C:\Users\username\Desktop\yestbook.xlsm", True, False)
Set wb2 = Workbooks.Open(shtpath)
Set ws = wb2.Worksheets(1)
ws.Name = "testname"
ws.Copy after:=wb1.Sheets(1)