Отчеты в Экселе

Normann

Well-known member
09.08.2007
168
1
#1
Тема такая: у меня есть переменная типа Excel.Application
При создании отчета ее нужно инициализировать новым выделением памяти, иначе после закрытия приложеня Excel созданного этой переменной нельзя будет ей воспользоваться. Получается что на каждый отчет приходится создавать отдельное приложение. Как выйти из этой не экономичной ситуации?
 
T

Tanya

#2
Код:
Dim Exc As Excel.Application
On Error Resume Next
[b]Set Exc = GetObject("", "Excel.Application")[/b]
If Err Then
Err.Clear
[b]Set Exc = CreateObject("Excel.Application")[/b]
'или [b]Set Exc = New Excel.Application[/b]
Exc.Visible = True
If Err Then
MsgBox "Не удалось открыть Excel" & vbCrLf & _
Err.Description
Err.Clear
End If
Else
Exc.Visible = True
End If
On Error GoTo 0
 

Normann

Well-known member
09.08.2007
168
1
#3
Болшое спасибо, но я надеялся увидеть решение без прибегания к On Error. Может быть есть такое решение? Может есть способ проверить существует ли (или удален) объект связанный с объектной переменной?
 
T

Tanya

#4
Возможно просто

Код:
If Exc is Nothing Then
'приложение не создавало Excel-объект
'или приложением уже был закрыт такой объект
else
'Это приложение уже открыло Excel
end if
но, если в процессе работы пользователь,
а не приложение закрывает Excel, с которым связано приложение,
то конечно, возникнет ошибка
 

Normann

Well-known member
09.08.2007
168
1
#5
Вот как раз этот is nothing мне и нужен был, большое спасибо, только я его уже в нашел в справке.