Всем здрасьте.
Есть некий агент, формирующий отчет в xls. В случае ошибки хочу глушить процесс. Делаю так:
В этом случае curDoc не определен, вывалится ошибка и процесс должен убиться, но этого почему то не происходит, а если делаю так, то все ок:
Т.е. если делать Call xlApp.Quit() не в обработчике ошибок, то нужный процесс убивается без проблем. Причем вот что странно - у меня стоит 2007 офис и есть глюки, у коллеги стоит 2010-й и у него все ок, т.е. процесс убивается вне зависимости от того, где размещается Call xlApp.Quit().
ЗЫ: Где то в соседней теме встречал такую фишку:
, но мне это не подходит, т.к. она глушит вообще все процессы эхеля.
Есть некий агент, формирующий отчет в xls. В случае ошибки хочу глушить процесс. Делаю так:
Код:
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
Код:
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
ЗЫ: Где то в соседней теме встречал такую фишку:
Код:
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 Nothing Then
ForAll obj In objs
obj.Terminate
End ForAll
End If
Quit:
Exit Sub
ErrH:
Resume Quit
End Sub