Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Excel+Prozess+VB6


Автор: Leonidas 12.5.2004, 12:26
Работaю с Ехсеl , как с БД. После закрытия програмы Ехсеl остается где-то в памяти и при каждом повторном запуске пр-мы кол-во процессов Ехсеl в Task Manager нарастает. Как убить
Ехсеl ? Вот код пр-мы:

Dim myBook
Dim zakr

Private Sub Form_Load()
OpenBook1
End Sub
Sub OpenBook1()
Set myBook = Workbooks.Open(FileName:="C:\Res4.XLS")

Command1.Caption = myBook.Worksheets(1).Range("a3").Value
‘………
End Sub


Private Sub Form_Unload(Cancel As Integer)
Ochistka
myBook = Nothing
End Sub

Sub Ochistka()
Set zakr = Workbooks.Close(FileName:=" C:\Res4.XLS ")
End Sub

Автор: Akina 12.5.2004, 12:57
А почему

Dim myBook
...
Set zakr = Workbooks.Close
myBook = Nothing

а не

Dim myBook As Excel.Workbook
...
myBook.Close
Set myBook = Nothing

?

И вообще:

Цитата
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
Set xlApp = Nothing  ' Careful! xlBook may still
                    ' contain an object reference.
Set xlBook = Nothing  ' Now all the references
                    ' are cleared.


Автор: Гость_Leonidas 12.5.2004, 14:35
Применение вышеуказаного не помогает. EXCEL.EXE после завершения програмы все также сидит в Task Manager.
Sorry

Автор: Akina 12.5.2004, 14:39
Цитата
EXCEL.EXE после завершения програмы все также сидит в Task Manager.

Так и должно быть - сервер-то OLE запущен... другое дело что двоиться он как бы не должен...

Автор: Гость_Leonidas 12.5.2004, 15:57
Остается только согласиться ! Спасибо. Но работать с ЕXCEL- файлом (т.е. изменять его) могу только после повторного открытия и закрытия файла. Он говорит , что файл уже открыт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)