|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
Добрый день, в программе обращаюсь к документу excel, после необходимых действий закрываю документ и приложение. oWorkBook.Close() loExcel.Quit() А в диспетчере задач процесс Excel.exe остается висеть. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 14:57 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
oWorkBook.Close() loExcel.Quit() RELEASE loExcel ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 15:06 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
RELEASE loExcel есть в конце. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 15:24 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
НадеждаМRELEASE loExcel есть в конце. Значит это Excel предыдущего сеанса работы, который завершился некорректно - его просто принудительно завершить надо. Бывает так - запускается Excel, работает программа, затем сбой и все Excel висит в списке задач, т.к. код не дошел до RELEASE. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 15:32 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
MAYAKOV_SV, Видимо оно так и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 15:41 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
Или вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 15:58 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
Если документ был изменен, то в приведенном синтаксисе при вызове close() возникнет диалог с вопросом сохранить сделанные изменения или закрыть без изменений. Если экземпляр Excel не видимый, то и диалог виден не будет. Как следствие, Excel так и останется висеть в памяти. Чтобы диалога в подобных случаях не возникало, надо явно указать, что сохранять ничего не надо. Это можно сделать двумя способами Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Удаление переменной памяти loExcel - это всего-лишь удаление переменной, содержащей ссылку на экземпляр приложения. На факт закрытия приложения Excel вообще никак не влияет. Хотя, для порядка, желательно все-таки ее удалять. И еще, надеюсь, Вы создаете экземпляр Excel через команду CreateObject(). Поскольку, если Вы создаете экземпляр через команду GetObject(), то Вы можете не создать новый экземпляр, а "подхватить" ранее открытый. И не факт, что у Вас получится закрыть "чужой" экземпляр приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 16:02 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 16:21 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
FffffffffffffffffffffИли вы не уничтожили все объекты внутри Excel, явно или неявно порожденные вашей программой. Например: ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 16:23 |
|
Вопрос про Excel
|
|||
---|---|---|---|
#18+
Исправляюсь: MAYAKOV_SVсписке задач, т.к. код не дошел до RELEASE loExcel.Quit. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2011, 16:29 |
|
|
start [/forum/topic.php?fid=41&fpage=68&tid=1584111]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 261ms |
total: | 374ms |
0 / 0 |