Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Как закрыть невидимую книгу excel? Добавлено: 27.01.09 08:53  

Автор вопроса:  Dropper
Предположим была открыта книга в невидимом режиме
Dim oExcel As New Excel.Application
oExcel.Workbooks.Open

Код уже выполнен, книга висит в процессах. Как ее закрыть?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 27.01.09 14:05
  1. xl.Workbooks.Close

Ответить

Номер ответа: 2
Автор ответа:
 Dropper



Вопросов: 11
Ответов: 19
 Профиль | | #2 Добавлено: 29.01.09 08:55
> mc-black

Не понял. Вываливается ошибка.

Ответить

Номер ответа: 3
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #3 Добавлено: 29.01.09 16:19
  1. oExcel.Workbooks.Close

или
  1. oExcel.Workbooks("Book1").Close

Ответить

Номер ответа: 4
Автор ответа:
 Dropper



Вопросов: 11
Ответов: 19
 Профиль | | #4 Добавлено: 29.01.09 17:19
Ну я ведь сказал что код уже выполнен. Может даже сам excel закрыт, но невидимый файл-то висит. Можно его как-то закрыть? Если даже написать просто Workbooks.Close то закроется все открытые книги, кроме невидимой

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 30.01.09 10:18
Тебе дали совет, который приходится в том случае, если ты допишешь это дело в тот же код, что и привел. Можно еще так:
  1. oExcel.Workbooks(1).Close


А если ты чего-то не доделаешь до завершения скрипта, то сослатся на те же объекты уже сложнее в разы. Нужен типа хак. Поиск окон и убивание целевого процесса, к com-технологии пробиться будет сложнее. Да и непонятно, из какой среды бы этого хочешь добиться, из vbscript, из office vba, из vb6?

Может даже сам excel закрыт, но невидимый файл-то висит.

Такого не бывает. Документ без программы не существует в памяти. Просто документ открыт в новом экземпляре excel и к нему ты не можешь обратиться после отработки твоего скрипта. Почему б не закрыть программу в том же самом скрипте. Объясни вообще для чего это тебе нужно и в какой среде пишешь свои программки?

Ответить

Номер ответа: 6
Автор ответа:
 Dropper



Вопросов: 11
Ответов: 19
 Профиль | | #6 Добавлено: 30.01.09 16:14
В икселевском vba пишу. А нужно это вот зачем: например юзер прервал ход программы, выключил форму или "догадался" и нажал ctrl+Break или просто произошел какой-то сбой в самой программе или что_нибудь_еще. Вот и хотелось бы чтоб при повторном вызове как-нибудь закрывать уже запущенную невидимую книгу

Ответить

Номер ответа: 7
Автор ответа:
 fAndOrIn



Вопросов: 5
Ответов: 344
 Профиль | | #7 Добавлено: 02.02.09 18:26
Какой резон работая в Excel открывать новую книгу в отдельном сеансе.
Используй Workbooks.Open "Hidden.XLS"
При повторном вызове
  1. on error resume next
  2. Workbooks("Hidden.XLS").close SaveChanges:=False 'True
  3. if err then err clear
  4. on error goto 0

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам