Это нужно сказать прежде всего: всегда, всегда, ВСЕГДА используют .Copy
вместо .Move
при автоматической перетасовке книг Excel с VBA.Move
сопряжён с риском, потому что он является модификацией другого файла, и если ваш код плохо себя ведет, вы можете потерять все данные, с которыми работаете.
Прежде всего, узнайте, какая книга является какой, без двусмысленности:
Dim wkbkDestination, wkbkTemporary As Workbook
Set wkbkDestination = Workbooks("OpenWorkbookIWantToCopyTo.xlsx")
Set wkbkTemporary = Workbooks.Open("WorkbookIWantToCopy.xlsx")
Далее скопируйте нужную вкладку в целевую книгу назначения, переименуйте новую вкладку, чтобы избежать ошибок, и закройте вторую книгу без сохранения.
wkbkTemporary.Worksheets("WorksheetIWantToCopy").Copy Before:=wkbkDestination.Worksheets(1)
wkbkDestination.Worksheets(1).Name = "WorkbookIWantToCopy"
wkbkTemporary.Close SaveChanges = False
Естественно, в зависимости от того, какие именно элементы управления вы намереваетесь использовать, существует множество способов реализации этого кода.Из вашего описания несколько неясно, какую именно проблему вы пытаетесь решить и является ли это разовым событием, которое вы пытаетесь выполнить для данного списка файлов, или эта функция должна использоваться на постоянной основе.