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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2015, 20:06   #1
Thez
Пользователь
 
Регистрация: 23.02.2014
Сообщений: 27
По умолчанию Копирование листов

Здравствуйте,
Собственно вся суть вопроса: как скопировать лист в скрытую книгу? И наоборот из скрытой книги.

Знаю код:
Код:
Workbooks("Книга1.xls").Sheets("Нужный лист").Copy After:=Workbooks("Книга2.xlsb").Sheets(1)
Но он не срабатывает для скрытой книги. Дебаг пишет Workbooks("Книга2.xlsb") = subscript out of range. Пробовал для книги2 писать полный путь - всё равно не работает.

Как такое можно провернуть?
Thez вне форума Ответить с цитированием
Старый 24.03.2015, 20:21   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

книга скрыта от глаз пользователя, но если она окрыта в екселе и есть в списке Workbooks можете копировать в нее из нее как из обычной видимой книги, видит пользователь или нет процесс копирования это для макроса все равно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.03.2015, 09:21   #3
Thez
Пользователь
 
Регистрация: 23.02.2014
Сообщений: 27
По умолчанию

Тем не менее, если запускать макрос, когда Книга2 скрыта - выскакивает ошибка. А если Книгу2 отобразить и запустить макрос - то всё прекрасно копируется. В чём может быть причина, если не в скрытости книги?
Thez вне форума Ответить с цитированием
Старый 25.03.2015, 09:44   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Действительно не работает!
Код:
Sub bb()
With Workbooks(3)
  .Windows(1).Visible = False 'с этим не работает!
  ThisWorkbook.Sheets(1).Copy after:=.Sheets(.Sheets.Count)
  .Windows(1).Visible = True
End With
End Sub
Причина, видимо, в том, что Excel всегда делает активным скопированный лист, а активировать лист в скрытой книге невозможно.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 25.03.2015, 14:35   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ответил руководствуясь логикой, все оказалось так, но чуть-чуть не так...
извините
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.03.2015, 15:51   #6
Thez
Пользователь
 
Регистрация: 23.02.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Причина, видимо, в том, что Excel всегда делает активным скопированный лист, а активировать лист в скрытой книге невозможно.
Но ведь код:
Код:
Workbooks("Книга1").Worksheets.add
Также делает новый лист активным.

Но код срабатывает:
Код:
Sub bb()
With Workbooks("Книга1")
  .Windows(1).Visible = False 
  ThisWorkbook.Worksheets.Add 'работает несмотря на то, что книга скрыта!
End With
End Sub
Когда мы отображаем скрытую книгу, то просто новый лист становится активным.

Значит дело не в активности листа...

Последний раз редактировалось Thez; 26.03.2015 в 15:57.
Thez вне форума Ответить с цитированием
Старый 26.03.2015, 17:55   #7
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Что можно сказать - да, в Excel много... странностей
Вот большая тема, посвященная этому: http://www.cyberforum.ru/vba/thread796990.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборочное копирование листов lobot Microsoft Office Excel 2 29.07.2013 20:53
Копирование листов (не работает) WIC Microsoft Office Excel 1 29.02.2012 15:11
Копирование данных из 2-ух листов в один Marishka2011 Microsoft Office Excel 0 01.04.2011 16:32
Копирование листов из закрытой книги rubius2008 Microsoft Office Excel 6 05.02.2011 22:44
копирование листов из закрытых книг mephist Microsoft Office Excel 4 10.07.2009 17:18