Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.129.39.55] |
|
Сообщ.
#1
,
|
|
|
Создаю объект, работаю с ним, очищаю.
Dim oExcelApp As New Excel.Application 'Приложение. Dim oDocExcel As New Excel.Workbook 'Документ Excel. Dim oExWs As New Excel.Worksheet 'Таблица документа Excel. 'Создать приложение Excel и скрытно работать с документом. 37 Set oExcelApp = New Excel.Application 38 oExcelApp.Visible = False 39 oExcelApp.IgnoreRemoteRequests = True 40 Set oDocExcel = oExcelApp.Workbooks.Open(g_oCommonDialog.FileName, , True) 41 Set oExWs = oDocExcel.ActiveSheet Если же происходит ошибка - посылаю в ErrorHandler. ErrorHandler: 1000003 If Not oDocExcel Is Nothing Then Call oDocExcel.Close(False) 1000004 If Not oExcelApp Is Nothing Then 1000005 oExcelApp.IgnoreRemoteRequests = False 1000006 Call oExcelApp.Quit 1000007 End If Однако, если объекты убиваются ранее - проверка IS NOTHING проваливается с ошибкой 429. IsNull не помогает так же. Дебаггер показывает "Object variable not set". Как правильно написать условие "если приложение/документ/таблица СУЩЕСТВУЮТ - делать с ними что-нибудь"? |
Сообщ.
#2
,
|
|
|
Цитата Сергей85 @ Создаю объект Неправильно. Либо New указывается в Dim, и Set = New не нужен, либо Dim без New и Set New. Цитата Сергей85 @ если объекты убиваются ранее - проверка IS NOTHING проваливается с ошибкой 429 Error 429 - это "ActiveX component can't create object.". И это неудивительно. Почитайте справку про операторы и порядок их выполнения, что ли, а то сперва складываем, потом множим, и удивляемся... |
Сообщ.
#3
,
|
|
|
Цитата Akina @ Error 429 - это "ActiveX component can't create object.". И это неудивительно. Почитайте справку про операторы и порядок их выполнения, что ли, а то сперва складываем, потом множим, и удивляемся... Еще раз: я убиваю объект, делая его Nothing. Но условие Not is nothing выдает ошибку 429. С другими переменными и указателями такой бадяги нет; только с этим приложением. |
Сообщ.
#4
,
|
|
|
Чему эквивалентно Not oExcelApp Is Nothing?
Вариант 1: (Not oExcelApp) Is Nothing Вариант 2: Not (oExcelApp Is Nothing) |
Сообщ.
#5
,
|
|
|
Второй. То, что мне и нужно.
Добавлено Причем пока объект не убивается =Nithing - это условие отрабатывает корректно. |