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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2012, 04:45   #1
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию Разночтения при обращении к книгам в 2003 и 2007 версиях

Ребят, у меня еще один небольшой вопросик, связанный с разночтением программы в 2003 и 2007 версиях....
необходимо скопировать листы из 1 книги(назовем ее КНИГА1) в другую (НОВАЯ_КНИГА) но с тем условием, чтобы в КНИГА1, из которой копируют, были по активации скрыты все листы, кроме "листа 7".
Таким образом, при запуске программы в КНИГА1 всегда открыт только 1 лист, на время процесса открываются все скрытые листы, они копируются в НОВУЮ_КНИГА, а потом скрываются все, кроме "Листа7"
в 2007 версии работает так, как я сделала, а в 2003 начинаются "чудеса".

Код:
Sub Res() 
Dim sh As Worksheet
Application.ScreenUpdating = False
Sheets("Proceeding").Select
Sheets(Array("Лист1", "Лист2", "Лист4", "Лист5")).Select
Sheets(Array("Лист1", "Лист2", "Лист3", "Лист6")).Copy
Workbooks(1).Activate
Workbooks(2).Activate
For Each sh In Workbooks(2).Sheets
 If sh.Name <> "Proceeding" Then
sh.Visible = xlSheetVeryHidden
 End If
 Next
End Sub
В 2003 работает только тогда,когда номера листов в скобках стоят наоборот, точнее, в 2003 прокатывает вариант

Код:
Dim sh As Worksheet
Application.ScreenUpdating = False
Sheets("Proceeding").Select
Sheets(Array("Лист1", "Лист2", "Лист4", "Лист5")).Select
Sheets(Array("Лист1", "Лист2", "Лист3", "Лист6")).Copy
Workbooks(1).Activate
Workbooks(2).Activate
For Each sh In Workbooks(1).Sheets
Application.ScreenUpdating = False
 If sh.Name <> "Лист7" Then
sh.Visible = xlSheetVeryHidden
 End If
 Next
это просто какой-то ужас в 2003 версией...а в 2007 не работает вариант,который работает в 2003 версии.

и в той и в другой версии при несаблюдении написанного выше, появляется сообщение о том,что нельзя установать свой-тво "VISIBLE" для книги такой-то. То есть в 2007 обращение идет в первую очередь к новой книге, а в 2003-к старой, и получается, что в новой книге невозможно найти "Лист7".
Ошибка выкидывается на строке
Код:
sh.Visible = xlSheetVeryHidden
Можеет подсказать какое-нибудь универсальное решение,предусматривающее скрытие "Листа7" для обоих версий ?
Peace!
Blame вне форума Ответить с цитированием
Старый 18.01.2012, 10:50   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ну и правильно. Надо явно указывать книгу, к к-рой обращаетесь:
Вместо :
Код:
Sheets("Proceeding").Select
Sheets(Array("Лист1", "Лист2", "Лист4", "Лист5")).Select
Sheets(Array("Лист1", "Лист2", "Лист3", "Лист6")).Copy
Workbooks(1).Activate
Workbooks(2).Activate
достаточно:
thisWorkbook.Sheets(Array("Лист1", "Лист2", "Лист3", "Лист6")).Copy
И избавляйтесь от Select и Activate. Лишнее это.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 18.01.2012, 11:27   #3
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию

УУиии !!!
Пааааапробую, как Вы сказали))))
Дад, Вы абсолютно правы: Селекты- это моя беда))))
Исправлюсь!)))
Спасиибо (^.~)
Peace!
Blame вне форума Ответить с цитированием
Старый 18.01.2012, 11:50   #4
Blame
Пользователь
 
Регистрация: 24.12.2011
Сообщений: 70
По умолчанию

получилось получилось получилось))) и в 2003, и в 2007 )))
*хлопает в ладоши*
Ой, как отлично так день начался !! ))

*_*
Масима масима!!
Peace!
Blame вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертировать формулы из [2007 Word 2007] в [2003 Word 2003] mswmd Microsoft Office Word 8 10.07.2017 17:06
Ошибка при обращении к объекту CodeNOT C# (си шарп) 3 28.05.2011 12:47
Указание диапазонов при обращении к функции Parabellum Microsoft Office Excel 16 22.01.2011 23:59
Проблема при обращении эксель к ворду. RGZZ Microsoft Office Excel 0 16.06.2010 17:17
Ошибка при обращении к интернет странице Alter Свободное общение 2 06.08.2008 22:25