Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/73: Рейтинг темы: голосов - 73, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185

Xlapp.quit() Не Срабатывает После Errh

23.01.2014, 15:17. Показов 14044. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здрасьте.

Есть некий агент, формирующий отчет в xls. В случае ошибки хочу глушить процесс. Делаю так:

.SpoilerTarget">Спойлер: Раскрывающийся Текст


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Initialize
On Error GoTo errH
 
Dim xlApp, xlWorkbook, xlSheet
Dim curDoc as NotesDocument
 
Set xlApp = CreateObject({Excel.Application})
xlApp.SheetsInNewWorkbook = 1
Call xlApp.Workbooks.Add({})
Set xlWorkbook = xlApp.Workbooks(1)
Set xlSheet = xlWorkbook.Worksheets(1)
 
тут будет заполнение отчета
xlWorkbook.Sheets(1).Name = {ТТ №} & curDoc.fldLRPNumber(0)
 
endSub:
Exit sub
errH:
Print {Error "} & Error$ & {" in line } & Erl
If IsObject(xlApp) Then
Call xlApp.Quit()
End If
Resume endSub
End Sub
В этом случае curDoc не определен, вывалится ошибка и процесс должен убиться, но этого почему то не происходит, а если делаю так, то все ок:

.SpoilerTarget">Спойлер: Раскрывающийся Текст


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Initialize
On Error GoTo errH
 
Set xlApp = CreateObject({Excel.Application})
xlApp.SheetsInNewWorkbook = 1
Call xlApp.Workbooks.Add({})
Set xlWorkbook = xlApp.Workbooks(1)
Set xlSheet = xlWorkbook.Worksheets(1)
 
Call xlApp.Quit()
 
endSub:
Exit sub
errH:
Print {Error "} & Error$ & {" in line } & Erl
If IsObject(xlApp) Then
Call xlApp.Quit()
End If
Resume endSub
End Sub
Т.е. если делать Call xlApp.Quit() не в обработчике ошибок, то нужный процесс убивается без проблем. Причем вот что странно - у меня стоит 2007 офис и есть глюки, у коллеги стоит 2010-й и у него все ок, т.е. процесс убивается вне зависимости от того, где размещается Call xlApp.Quit().

ЗЫ: Где то в соседней теме встречал такую фишку:

.SpoilerTarget">Спойлер: Раскрывающийся Текст


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub CloseMSobj(execName As String)
On Error GoTo ErrH
Dim objs As Variant
Dim strSQL As String
Dim strWMI As String
strWMI = "winmgmts:"
strSQL = "Select * From Win32_Process "
strSQL = strSQL & {where Name = } & execName &{}
Set objs = GetObject(strWMI).ExecQuery(strSQL)
If Not objs Is Nothyng Then
ForAll obj In objs
obj.Terminate
End ForAll
End If
Quit:
Exit Sub
ErrH:
Resume Quit
End Sub
, но мне это не подходит, т.к. она глушит вообще все процессы эхеля.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2014, 15:17
Ответы с готовыми решениями:

Errh: 4602: Dom Parser Operation Failed
errh: 4602: DOM parser operation failed Из-за чего может возникать данная ошибка? Связано ли это как-нибудь с памятью, версией Lotus...

После нажатия на кнопку Quit программа зависает
Запускаю следующий код в интерфейсе Jupiter. import site from Tkinter import Tk, BOTH from ttk import Frame, Button, Style ...

После Application.Quit приложение остается в памяти
Программа берет екселевские файлы и перегоняет информацию по определенному алгоритму в текстовый. Почему-то, если *.xls файл больше 2...

23
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
03.02.2014, 18:18
Студворк — интернет-сервис помощи студентам
1. почему в обработчике просто не написать xlApp.Quit() ?
Потому что если по каким-то причинам объект экселя не создастся, то попав в обработчик он снова нарвется на ошибку при попытке выполнить xlApp.Quit и зациклится, проходили уже...


2. почему не перебдеть возможные ошибки?
Это уже второй вопрос, изначально проблема была в другом.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
04.02.2014, 20:25
Ну не знаю... у меня твоя конструкция работает. Ошибка обрабатывается и объект убивается
0
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 185
05.02.2014, 12:30
Я писал в самом начале, что глюк был только у меня на чистом 2007-м офисе(без SP). У коллеги на 2010-м все нормально, да и у меня в итоге пропало. Так что с чем это связано, хз.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
05.02.2014, 16:58
Это связано с OLE. Глючным было, глючным навсегда и останется... :crash:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.02.2014, 16:58

XLApp:= CreateOleObject('Excel.Application');
создаю приложение Excel. XLApp:= CreateOleObject('Excel.Application'); Открываю в нем существующий файл Через Cells вставляю в него...

Не срабатывает ELSE после IF
В строчке Ping %LastRowCN% if errorlevel 1 ( goto start ) else ( Move %TextName% D:\Post\Errors ) Не срабатывает что...

Не срабатывает после for'a -> іf
Добрый вечер форумчане, небольшая проблемка возникла при компиляции: Так if выполняется for(int i(0); i != _1C.size()-1; i++) ...

Не срабатывает код после цикла
вот полный код потока class ClientThread implements Runnable { @Override public void run() { try...

Обработчик .on не срабатывает после .replaceWith()
Есть некий див с таблицей, в которой есть кнопки изменить/удалить. После нажатия на кнопку отправляется аяксина, ответом которой является...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru