Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти.. / 7 сообщений из 7, страница 1 из 1
10.06.2009, 10:23:23
    #36034823
fghjfghj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
День добрый. Тема, наверное, уже обсуждалась много раз. Но мне, увы, работающего решения найти не удалось. Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub main()
Dim xlApp                  As Excel.Application
Dim xlWb                   As Excel.Workbook
Dim xlWs                   As Excel.Worksheet

Set xlApp = New Excel.Application
Set xlWb = xlApp.Workbooks.Open(App.Path & "\FILE.xls")
Set xlWs = xlWb.Worksheets( 1 )

    xlApp.Visible = False
    xlApp.ScreenUpdating = False
    xlApp.Calculation = xlCalculationManual

    xlApp.ActiveWorkbook.Close False
    xlApp.Quit
Set xlWs = Nothing
Set xlWb = Nothing
Set xlApp = Nothing

End Sub
На строке Set xlApp = New Excel.Application появляется процесс в диспетчере задач - да так там и остается..
Прикладываю пример.
...
Рейтинг: 0 / 0
10.06.2009, 11:46:55
    #36035092
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
fghjfghj, у Вас же есть переменная с объектом Workbook - через неё и закрывайте
Код: plaintext
1.
    xlWb.Close False
    xlApp.Quit
1. xlApp.Visible = False - это не нужно, т.к. это поведение по-умолчанию для New Excel.Application
2. когда Visible = False, то обращение к ActiveWorkbook может быть некорректным - по-видимому оно и глючит
...
Рейтинг: 0 / 0
10.06.2009, 11:54:43
    #36035115
fghjfghj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
qwrqwr, спасибо за уточнения.
xlApp.ScreenUpdating = False стало быть тоже лишне?

Написал как вы сказали - проблема остается.
...
Рейтинг: 0 / 0
10.06.2009, 12:06:14
    #36035158
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
fghjfghjНаписал как вы сказали - проблема остается.ну тогда не знаю
вот практически такой же код у меня отрабатывает, корректно закрывая xlApp
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub main()
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet

    Set xlApp = New Excel.Application
    Set xlWb = xlApp.Workbooks.Open("C:\FILE.xls")
    Set xlWs = xlWb.Worksheets( 1 )

    xlApp.ScreenUpdating = False
    xlApp.Calculation = xlCalculationManual

    xlWb.Close False
    xlApp.Quit
    Set xlWs = Nothing
    Set xlWb = Nothing
    Set xlApp = Nothing
End Sub
смысла в этом коде никакого - но это ведь только пример? верно?
а в реальном коде ScreenUpdating = False может будет и к месту, не знаю...
...
Рейтинг: 0 / 0
10.06.2009, 12:50:02
    #36035301
fghjfghj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
Тот же код работает не так =(
Видео
...
Рейтинг: 0 / 0
11.06.2009, 08:20:08
    #36036746
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
fghjfghj, попробуйте так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub main()
    Dim xlApp As Excel.Application
    Dim xlWb As Excel.Workbook
    Dim xlWs As Excel.Worksheet

    Set xlApp = New Excel.Application
    Set xlWb = xlApp.Workbooks.Open("C:\FILE.xls")
    Set xlWs = xlWb.Worksheets( 1 )

    xlApp.ScreenUpdating = False
    xlApp.Calculation = xlCalculationManual

    Set xlWs = Nothing
    xlWb.Close False
    Set xlWb = Nothing
    xlApp.Quit
    Set xlApp = Nothing
End Sub
...
Рейтинг: 0 / 0
11.06.2009, 09:48:45
    #36036863
fghjfghj
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти..
vkodor, у меня не работает, однако, все нормально закрывается на проверенных мною нескольких других машинах. Я думаю - проблема в моем EXCEL или в недоброкачественных надстройках к нему.

Спасибо за ответы
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Зыкрытие объекта Excel.Application из VB6. Остается висеть в памяти.. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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