2013-07-17 5 views
0

Я пытаюсь написать макрос, чтобы скопировать «Sheet1» из одной книги в другую, но я продолжаю получать ошибку времени выполнения «9»: вне диапазона.Ошибка выполнения «9» при копировании рабочего листа в другую книгу

Sub CopySheetToOtherWbk() 

Dim CopyFromBook As Workbook 
Dim CopyToWbk As Workbook 
Dim ShToCopy As Worksheet 

Set CopyFromBook = Workbooks("AllBugs.xlsx") 
Set ShToCopy = CopyFromBook.Worksheets("Sheet1") 
Set CopyToWbk = Workbooks("YourFriendlyNeighborhoodTemplateWorksheet.xlsx") 

ShToCopy.Copy After:=CopyToWbk.Sheets(CopyToWbk.Sheets.Count) 

End Sub 

Подсвеченная линия - «Set CopyFromBook = Рабочие книги (« AllBugs.xlsx »)». Не уверен, что я делаю неправильно здесь. Относительно новый для VBA. Любая помощь приветствуется.

ответ

1

Коллекция Workbooks относится ко всем в настоящее время открытым книгам. Если книга не открыта, вам нужно будет сделать это в первую очередь.

Set CopyFromBook = Workbooks.Open("C:\Some Location\AllBugs.xlsx") 
+0

Я пробовал это, и теперь получаю ошибку времени выполнения «1004». Он говорит, что файл не найден. Я скопировал путь к файлу и сделал то же самое для имени файла. Я не знаю, что здесь происходит. 'Set CopyFromBook = Workbooks.Open ("C: \ Users \ my.name \ Desktop \ CopyTest \ AllBugs.xlsx")' Edit: забыл добавить код –

+0

Некоторые основные отладки требуется: Проверьте путь, имя файла и EXTN снова; создайте простую процедуру, которая просто использует этот оператор Open; попробуйте его с образцом файла диска C: и т. д. Убедитесь, что рабочая книга еще не открыта. –

+0

Работает сейчас! Я пропустил это .xlsm вместо .xlsx. Глупая ошибка. Спасибо за помощь! –

Смежные вопросы