Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 09:58   #1
Toffifee
Пользователь
 
Аватар для Toffifee
 
Регистрация: 11.05.2011
Сообщений: 59
Вопрос Как скопировать определенные листы из одной книги в другую?

Здравствуйте!
Помогите пожалуйста решить вот такую задачу:
Как скопировать определенные листы из одной книги в другую?
Просто скопировать, ничего не меняя. Но надо чтоб именно макросами. Чтоб не вручную человек это делал. Искала в темах ничего не нашла...
Заранее спасибо!
Toffifee вне форума Ответить с цитированием
Старый 13.05.2011, 10:11   #2
Screame
Форумчанин
 
Аватар для Screame
 
Регистрация: 27.05.2009
Сообщений: 170
По умолчанию

Добавьте пример, тогда Вам быстрее помогут!
Screame вне форума Ответить с цитированием
Старый 13.05.2011, 10:27   #3
Toffifee
Пользователь
 
Аватар для Toffifee
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Не могу выложить оригинал файла, он слишком огромный и к тому же главное там данные. Но вот примерно.

Из книги "Отчет_за_месяц" в книгу, назовем к примеру её "Выборка", нужно скопировать с помощью макросов листы "Итог", "Касса" и "Анализ прибыли".
Файл приложила

Отчет_за_месяц.rar
Помогите пожалуйста, очень нужно сделать!
Toffifee вне форума Ответить с цитированием
Старый 13.05.2011, 10:44   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Одна строка, записано рекордером:

Код:
Sub Macro1()
'
' Macro1 Macro
'

    Sheets(Array("Касса", "Итог", "Анализ прибыли")).Copy Before:=Workbooks("Book1" _
        ).Sheets(1)
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.05.2011, 15:47   #5
Toffifee
Пользователь
 
Аватар для Toffifee
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Спасибо, сделала вот так вот:
Sub Создать_Ежедневный_Отчет()
'
' Создать_Ежедневный_Отчет Макрос
'
'
Sheets(Array("КАССА ИТОГ", "1С И ПРОЧЕЕ", "АНАЛИЗ ПРИБЫЛИ")).Select
Sheets("1С И ПРОЧЕЕ").Activate
Sheets(Array("КАССА ИТОГ", "1С И ПРОЧЕЕ", "АНАЛИЗ ПРИБЫЛИ")).Copy
ActiveWorkbook.SaveAs Filename:="C:\Ежедневный отчет.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub


А как это оптимизировать под 2007 Excel?
А то вот такое выдает:
ошибка.JPG
Toffifee вне форума Ответить с цитированием
Старый 13.05.2011, 17:07   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это потому, что в xls сохраняете вероятно листы из xlsx.
Запишите рекордером сохранение в формате 2007 экселя и потом исправьте по образцу в этом коде.
Я не подскажу синтаксис - нет сейчас 2007 под рукой.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.05.2011, 17:14   #7
Toffifee
Пользователь
 
Аватар для Toffifee
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Спасибо, попробую )
Невнимательная я, и не заметила что с 2007 на 2003 сохраняю....
Toffifee вне форума Ответить с цитированием
Старый 13.05.2011, 17:21   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Такие строки и у меня при записи рекордером были, но я их удалил как лишние:

Sheets(Array("КАССА ИТОГ", "1С И ПРОЧЕЕ", "АНАЛИЗ ПРИБЫЛИ")).Select
Sheets("1С И ПРОЧЕЕ").Activate

И про то, что нужно копировать в новую книгу, Вы не сказали
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.05.2011, 17:25   #9
Toffifee
Пользователь
 
Аватар для Toffifee
 
Регистрация: 11.05.2011
Сообщений: 59
По умолчанию

Да да, нужно в другую книгу копировать, в новую.
Причем это только пол беды ))))
Надо ещё в эту же новую книгу из другого файла тоже копировать один лист, я тут перерыла форум и вроде нашла что то похожее.
http://www.programmersforum.ru/showthread.php?t=27210
Попробую сделать.
Toffifee вне форума Ответить с цитированием
Старый 13.05.2011, 17:41   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Там не совсем то, но можно что-то подобрать, чтоб добавить в этот код (всё ещё xls):
Код:
Sub Создать_Ежедневный_Отчет()
'
' Создать_Ежедневный_Отчет Макрос
'
'
Dim wb As Workbook
Sheets(Array("КАССА ИТОГ", "1С И ПРОЧЕЕ", "АНАЛИЗ ПРИБЫЛИ")).Copy
Set wb = ActiveWorkbook

'тут дополняем wb листом из другой книги любым способом, _
но учтите, что свободных листов там пока нет

wb.SaveAs Filename:="C:\Ежедневный отчет.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование из одной книги в другую 804040 Microsoft Office Excel 4 16.08.2010 11:03
Скопировать данные из некоторых ячеек одной книги в другие книги fcunited Microsoft Office Excel 8 09.06.2010 12:14
Скопировать диапазон с одной книги в другую, если совпадают назавание листов m_v_v Microsoft Office Excel 7 06.04.2010 13:15
Как скопировать данные таблицы из одной базы access в другую? AK BULLETS БД в Delphi 2 31.03.2010 13:09
как из одной BDgrid скопировать выделенное поле в другую BDgrid Шурик БД в Delphi 7 03.05.2007 14:24