Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Excel / 11 сообщений из 11, страница 1 из 1
02.09.2011, 14:57
    #37422970
НадеждаМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
Добрый день, в программе обращаюсь к документу excel, после необходимых действий закрываю документ и приложение.

oWorkBook.Close()

loExcel.Quit()

А в диспетчере задач процесс Excel.exe остается висеть. Почему?
...
Рейтинг: 0 / 0
02.09.2011, 15:06
    #37422991
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
oWorkBook.Close()

loExcel.Quit()
RELEASE loExcel
...
Рейтинг: 0 / 0
02.09.2011, 15:24
    #37423051
НадеждаМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
RELEASE loExcel
есть в конце.
...
Рейтинг: 0 / 0
02.09.2011, 15:32
    #37423075
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
НадеждаМRELEASE loExcel
есть в конце.
Значит это Excel предыдущего сеанса работы, который завершился некорректно - его просто принудительно завершить надо.
Бывает так - запускается Excel, работает программа, затем сбой и все Excel висит в списке задач, т.к. код не дошел до RELEASE.
...
Рейтинг: 0 / 0
02.09.2011, 15:41
    #37423096
НадеждаМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
MAYAKOV_SV,

Видимо оно так и есть.
...
Рейтинг: 0 / 0
02.09.2011, 15:58
    #37423139
Вопрос про Excel
Или вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой.
...
Рейтинг: 0 / 0
02.09.2011, 16:02
    #37423159
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
Если документ был изменен, то в приведенном синтаксисе при вызове close() возникнет диалог с вопросом сохранить сделанные изменения или закрыть без изменений. Если экземпляр Excel не видимый, то и диалог виден не будет. Как следствие, Excel так и останется висеть в памяти.

Чтобы диалога в подобных случаях не возникало, надо явно указать, что сохранять ничего не надо. Это можно сделать двумя способами

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
* Вариант  1 
oWorkBook.saved = .T.  && признак того, что все изменения были сохранены
oWorkBook.Close()
loExcel.Quit()


* Вариант  2 
oWorkBook.Close(.F.)    && Первый параметр - это указание сохранять или нет сделанные изменения
loExcel.Quit()

Удаление переменной памяти loExcel - это всего-лишь удаление переменной, содержащей ссылку на экземпляр приложения. На факт закрытия приложения Excel вообще никак не влияет. Хотя, для порядка, желательно все-таки ее удалять.

И еще, надеюсь, Вы создаете экземпляр Excel через команду CreateObject(). Поскольку, если Вы создаете экземпляр через команду GetObject(), то Вы можете не создать новый экземпляр, а "подхватить" ранее открытый. И не факт, что у Вас получится закрыть "чужой" экземпляр приложения.
...
Рейтинг: 0 / 0
02.09.2011, 16:21
    #37423207
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
Код: plaintext
1.
2.
3.
* Вариант  3 
loExcel.DisplayAlerts = .F.
loExcel.Quit()
...
Рейтинг: 0 / 0
02.09.2011, 16:23
    #37423212
Ffffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
FffffffffffffffffffffИли вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой.

Например:
...
Рейтинг: 0 / 0
02.09.2011, 16:29
    #37423228
MAYAKOV_SV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
Исправляюсь:
MAYAKOV_SVсписке задач, т.к. код не дошел до RELEASE loExcel.Quit.
...
Рейтинг: 0 / 0
29.09.2011, 08:17
    #37460201
npp2202
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос про Excel
НадеждаМ,

oExcel.quit()
oExcel = .Null.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Excel / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]