Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отчеты в Экселе
Форум программистов > Системное программирование > Visual Basic
Normann
Тема такая: у меня есть переменная типа Excel.Application
При создании отчета ее нужно инициализировать новым выделением памяти, иначе после закрытия приложеня Excel созданного этой переменной нельзя будет ей воспользоваться. Получается что на каждый отчет приходится создавать отдельное приложение. Как выйти из этой не экономичной ситуации?
Tanya
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
Болшое спасибо, но я надеялся увидеть решение без прибегания к On Error. Может быть есть такое решение? Может есть способ проверить существует ли (или удален) объект связанный с объектной переменной?
Tanya
Возможно просто

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


но, если в процессе работы пользователь,
а не приложение закрывает Excel, с которым связано приложение,
то конечно, возникнет ошибка
Normann
Вот как раз этот is nothing мне и нужен был, большое спасибо, только я его уже в нашел в справке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.