Страницы: 1
RSS
Модальность окна открываемой книги
 
Всегда использую один код для открытия книги:  
Set wb = Workbooks.Open(SourcePath & fName)  
При этом, если поставить далее макрос на паузу (любым способом) книга wb становится модальной по отношению к ThisWorkbook. Т.е. пока макрос на паузе или wb открыта, окно ThisWorkbook не хочет выходить на передний план.  
 
Или не становится модальной.  
От чего это зависит - не пойму.
Bite my shiny metal ass!      
 
Интересный способ открытия книги, жаль помочь не могу, буду ждать вместе с Вами ответа ;)
<FONT COLOR="CadetBlue">
 
Не знаю, что такое модальная книга, но...  
может, вы забываете включить обновление экрана?  
 
Перед "паузой" поставьте application.screenupdating=true
 
В приложенном архиве файл мод.хлс открывает файл wb.хлс  
после чего макрос встает на паузу.  
Теперь на панели задач два окна мод и wb, wb активное, мод -  нет, попробуйте выбрать мод на передний план щелчком по панели задач.  
 
application.screenupdating=true перед стоп поставил, хотя и не отключал.
Bite my shiny metal ass!      
 
> пока макрос на паузе или wb открыта, окно ThisWorkbook не хочет выходить на передний план  
 
Попробуйте  
 
Set wb = Workbooks.Open(SourcePath & fName)  
ThisWorkbook.Activate  
MsgBox "Какая книга на переднем плане?"
 
Выражение ThisWorkbook.Activate эквивалентно щелчку по панели задач. Почему оно работает, а щелчок нет?  
Вопрос не в том, как сделать активной ту или иную книгу. Вопрос: как не дать окну стать модальным?  
 
Давайте поясню зачем оно надо. Если макрос остановился с ошибкой или я его прогоняю пошагово, то в какой-то момент мне нужно посмотреть на книгу мод, но она "прикрыта" сверху книгой wb, чтобы ее посмотреть нужно либо остановить макрос, либо закрыть wb - в любом случае продолжить макрос с того же места не представляется возможным. А вставлять в код ThisWorkbook.Activate уже поздно :)
Bite my shiny metal ass!      
 
Можно мне апнуть?  
Я понимаю, блажь конечно у меня с окнами, это же не впр или сбор данных из разных книг. Но все же.  
У меня есть еще пара моментов, на которые нет ответа - просто смирился  
Могу из задать
Bite my shiny metal ass!      
 
В процессе отладки чего-либо у меня точно несколько книг открыто бывает, а создавая пример выше - была только одна книга.    
Я тоже склоняюсь к мысли, что именно некое состояние на момент запуска влияет.  
Но не количество книг.  
 
> Чего тянуть-то?  
 
В основном лень и забывчивость мешает. Ну понимание бесперспективности - слишком у меня вопросы специфические.
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=11.01.2011 05:13}{thema=}{post}В приложенном архиве файл мод.хлс открывает файл wb.хлс  
после чего макрос встает на паузу.  
Теперь на панели задач два окна мод и wb, wb активное, мод -  нет, попробуйте выбрать мод на передний план щелчком по панели задач.  
 
application.screenupdating=true перед стоп поставил, хотя и не отключал.{/post}{/quote}  
 
посмотреть книгу можно введя в окне immediate thisworkbook.activate
Живи и дай жить..
 
проблему не решает,  
но хотя бы даёт возможность выбрать  
какая книга будет модальной при паузе  
(эксперименты показали что снеся wb на задний план, thisworkbook будет модальной по отношению к wb, то есть проблема не в экселе, а в работе windows с коллекцией окон экселя)  
 
For i = 1 To Application.Windows.Count  
Windows(1).WindowState = xlMinimized  
Next i  
Stop
 
{quote}{login=слэн}{date=13.01.2011 03:31}{thema=Re: }{post}  
посмотреть книгу можно введя в окне immediate thisworkbook.activate{/post}{/quote}Да, наверное, самый простой способ.  
Еще можно через Вид - Перейти в другое окно (2003: Окно - список окон)  
На самом деле окно wb не совсем модально, а только на панели задач не выбирается другое.  
 
dl, да, это скорее глюк винды с окнами, чем самого экселя, хотя:  
жаль я не зафиксировал ситуцию, когда эта модальность не проявляется.
Bite my shiny metal ass!      
Страницы: 1
Читают тему
Наверх
Loading...