Консультация № 146267
06.10.2008, 21:57
0.00 руб.
0 3 2
Добрый вечер, эксперты.

Как скопировать sheet в какой нить другой WB, которая находится в другой папке, вообщем имеет путь.

Я знаю, есть метод copy, но он действует только в пределах WorkBook где находится Sheet.

Подскажите.

Обсуждение

Неизвестный
06.10.2008, 22:13
общий
Здравствуйте Соколов В.В.
В закрытую "WB" , скопировать лист не удастся, а с открытой книгой "copy" работает.
Евгений.
Неизвестный
07.10.2008, 05:01
общий
это ответ
Здравствуйте, Соколов В.В.!

ExApp=Excel.Application
Создаем новую книгу (можно открыть существующую) и присвиваем ее переменной WB
Set WB = ExApp.Workbooks.Add
Из ранее открытой книги("Ranger.xls") копируем лист("data") в книгу WB (имя у нее будет типа "Книга1.xls") перед первым листом
ExApp.Workbooks("Ranger.xls").Sheets("data").Copy Before:=WB.Sheets(1)
Неизвестный
07.10.2008, 08:26
общий
это ответ
Здравствуйте, Соколов В.В.!
Для копирования в другую книгу необходимо использовать метод Copy, только предварительно её нужно открыть.
Пример привел в приложении.
Для разработки кода в VBA можно пользоваться кодами, формируемыми макросами, т.е. записываем макрос, а потом через редактор VBA читаем и используем его код.

Приложение:
Dim XL, WorkBook_New, Sheet As Object
Set XL = ThisWorkbook ''Наша книга
Set Sheet = ThisWorkbook.ActiveSheet ''Определяем нужный лист активный или указываем имя
Set WorkBook_New = Excel.Workbooks.Open("C:\2.xls") '' Файл в который копировать
Sheet.Activate
Sheet.Select '' Выделяем наш лист
Sheet.Copy After:=WorkBook_New.Sheets(1) '' копируем с признаком After (т.е. после первого листа)
WorkBook_New.Activate
WorkBook_New.Save '' сохраняем новую книгу
Форма ответа