|
v7: По команде Эксель.Quit() закрываются даже те xls-файлы, которые я не открывал
| ☑ |
0
IgorTrifonov
04.09.11
✎
09:58
|
Всем здрасьте, можно сказать доброе утро, короче спасибо.
Попытка
XL = СоздатьОбъект("Excel.Application");
Исключение
Сообщить("Не смог загрузить Excel!");
Сообщить(ОписаниеОшибки());
Перейти ~выход;
КонецПопытки;
создал файлик, заполнил его, сохранил
XL.WorkBooks.Add();
...
и в конце пишу
XL.Quit();
XL = ПолучитьПустоеЗначение();
и все экселевские файлы какие были открыты, бац и закрылись.
Научите пожалуйста, как жить дальше.
|
|
1
Нуф-Нуф
04.09.11
✎
10:01
|
Close?
|
|
2
IgorTrifonov
04.09.11
✎
10:07
|
книгу я закрываю,
XL.WorkBooks.Close();
но excel-то надо выгрузить из памяти?
|
|
3
Kookish
04.09.11
✎
10:11
|
(2) Из какой памяти? Если из 1С, то, думаю, достаточно
XL = ПолучитьПустоеЗначение();
А если закрываешь весь Excel, не удивляйся, что он весь и закроется. Про MDI слышал когда-нибудь?
|
|
4
IgorTrifonov
04.09.11
✎
10:19
|
Я-то не удивляюсь, пользователи в шоке. Почему excel-файлы, говорят закрываются даже те которые не имеют отношения к моей программе. Что я им про MDI буду рассказывать?
|
|
5
Kookish
04.09.11
✎
10:24
|
Ну так не закрывайте Excel. Делов-то.
|
|
6
Kookish
04.09.11
✎
10:25
|
Ну, или можно проверить: если данный файл один-единственный, то закрывать совсем. А если несколько открыто, то не закрывать.
|
|
7
IgorTrifonov
04.09.11
✎
10:29
|
Понял, спасибо. А с помощью переменной XL.??? как-то можно узнать открыты файлы или нет вообще?
|
|
8
Kookish
04.09.11
✎
10:31
|
(7) Точно не скажу, но что-то мне подсказывает, что копать нужно в сторону XL.WorkBooks.Count или вроде того.
|
|
9
Темный Эльф
04.09.11
✎
10:31
|
(7)Коллекция Workbooks, не?
|
|
10
IgorTrifonov
04.09.11
✎
10:33
|
Большое сапасибо. В принципе ведь знал же. Эх.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший