Страницы: 1
RSS
Открыть используя GetObject и сохранить изменения
 
Приветствую!  
Приведенный макрос решает задачу, НО...  
Если убрать строку  
Windows(wbTmp.Name).Visible = True  
файл открывается со скрытым окном, а если не убирать, то перед закрытием появляется на экране.  
Sub qqq()  
Dim wbTmp As Workbook, a  
           Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "test.xls")  
                      wbTmp.Sheets(1).[a1] = 5
 
          Windows(wbTmp.Name).Visible = True  
 
           wbTmp.Close True  
End Sub  
 
Как сделать, чтобы и открывался нормально, и на экране не показывался?
 
а чем мешает строка кода Windows(wbTmp.Name).Visible = True ???  
одной строкой больше, одной меньше - разница-то какая?  
 
PS: Сегодня впервые столкнулся с обычным файлом XLS, который GetObject не открыл  
(ошибка никакая не выскочила, просто GetObject вернул Nothing)  
Заменил на Workbooks.Open - всё заработало...  
А я-то думал, GetObject работает аналогично методу Workbooks.Open...
 
Андрей, отключи обновление экрана и  
Application.ShowWindowsInTaskbar = False  
Тогда ты вообще ничего не увидишь.
Я сам - дурнее всякого примера! ...
 
Попробовал так  
Sub qqq()  
Dim wbTmp As Workbook, a  
           Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "test.xls")  
           Application.ScreenUpdating = False  
Application.ShowWindowsInTaskbar = False  
           wbTmp.Sheets(1).[a1] = 5
          Windows(wbTmp.Name).Visible = True  
           wbTmp.Close True  
Application.ShowWindowsInTaskbar = True  
           Application.ScreenUpdating = True  
End Sub  
Все равно моргает
 
Беда!  
Sub qqq()  
   Dim wbTmp As Workbook, a  
   Application.ScreenUpdating = False  
   Application.ShowWindowsInTaskbar = False  
   Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "qwe.xls")  
   wbTmp.Sheets(1).[a1] = 5
   Windows(wbTmp.Name).Visible = True  
   wbTmp.Close True  
   Application.ShowWindowsInTaskbar = True  
   Application.ScreenUpdating = True  
End Sub
Я сам - дурнее всякого примера! ...
 
Спасибо,Сергей!  
Так куда лучше.  
Но не до конца понял, почему от перемены мест слагаемых изменилась сумма?
 
А что непонятно? В момент GetObject все моргание и происходит Ты открываешь файл. А ты после него отключаешь обновтение. Поздно, батенька:-)
Я сам - дурнее всякого примера! ...
 
А непонятно следующее  
Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "qwe.xls")  
Открываем файл и ничего не моргает  
 
отключаем обновление  
делаем книгу видимой  
и оно мыргает!  
 
Немного странно...  
Поэтому даже в голову не пришло отключить обновление до открытия книги
 
Ну ведь нелепо - отключать после того, как УЖЕ мигнуло :-)
 
{quote}{login=Юрий М}{date=13.10.2011 09:04}{thema=}{post}Ну ведь нелепо - отключать после того, как УЖЕ мигнуло :-){/post}{/quote}  
Так и дело все в том, что ЕЩЕ НЕ мигнуло!  
Если не делать книгу видимой, то морганий нет.-:(
 
:-) Тогда другой пример: собираемся удалять лист, и не хотим, чтобы выскакивало предупреждение. СНАЧАЛА отключаем:  
Application.DisplayAlerts = False  
а уже ПОТОМ удаляем лист:  
Sheets("Лист1").Delete
 
Утром деньги, вечером стулья!
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Неудачный пример  
СНАЧАЛА отключаем:  
Application.DisplayAlerts = False_---_Application.ScreenUpdating = False  
а уже ПОТОМ удаляем лист:_____---_____делаем окно видимым  
Sheets("Лист1").Delete______-----_____Windows(wbTmp.Name).Visible = True  
 
и не работает, как надо.
 
комп так и не починил?)))  
 
http://www.excelworld.ru/forum/2-858-1
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=RAN}{date=13.10.2011 09:36}{thema=}{post}Неудачный пример...{/post}{/quote}Удачный - вот наглядная иллюстрация:  
Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "test.xls")  
Application.ScreenUpdating = False  
Application.ShowWindowsInTaskbar = False  
СНАЧАЛА файл открываем, а потом все отключалки. Вот я о чём.
 
Вроде починил.  
А что, у тебя варианты  
Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "test.xls")  
Application.ScreenUpdating = False  
и  
Application.ScreenUpdating = False  
Set wbTmp = GetObject(ThisWorkbook.Path & "\" & "test.xls")  
работают одинаково?
 
думаю, что они будут работать по разному) Не обращай внимания, эт все мой "вечерний тупизм")))
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
а просто открыть экземпляр иксель createobject-ом  
 
потом workbook.open  ?  
 
ничего не мигает..
Живи и дай жить..
Страницы: 1
Читают тему
Наверх