Я печатаю документы из Excel в Word. Недавно я добавил обработчик ошибок, поэтому в случае любой ошибки при печати он должен закрыть документ Word и выйти из него. Поэтому он не останется открытым в фоновом режиме и будет заблокирован в режиме «Только чтение».
Текущий код:
Sub opentemplateWordOC()
Dim Paragraphe As Object, WordApp As Object, WordDoc As Object
Dim wSystem As Worksheet
Dim Cell As Range
Dim wdRng As Object 'Word.Range
Dim xlRng As Excel.Range
Dim tempFolderPath As String
Dim filePath As String
Dim fileTitle As String
Dim rngPara As Object
On Error GoTo ErrorHandlerEndExecution
'Application.ScreenUpdating = False
Set wSystem = ThisWorkbook.Sheets("Templates")
Dim File: File = Environ("Temp") & "\" & "OM_Technical_template" & ".docx"
'creationsession Word
Set WordApp = CreateObject("Word.Application")
'word ll be close to run
WordApp.Visible = False
'open the file .doc
Set WordDoc = WordApp.Documents.Open(File)
With WordDoc
'Here comes Footer
.Bookmarks("Company").Range.Text = ThisWorkbook.Sheets("OtherData").Range("AK21").Value
.Bookmarks("Department").Range.Text = ThisWorkbook.Sheets("OtherData").Range("AK22").Value
.Bookmarks("FBusinessID").Range.Text = ThisWorkbook.Sheets("OtherData").Range("AK23").Value
.Bookmarks("VAT").Range.Text = ThisWorkbook.Sheets("OtherData").Range("AK24").Value
.Bookmarks("Domicile").Range.Text = ThisWorkbook.Sheets("OtherData").Range("AK25").Value
Set xlRng = ThisWorkbook.Sheets("Order Confirmation").Range("G3", ThisWorkbook.Sheets("Order Confirmation").Range("G" & Rows.Count).End(xlUp))
Set wdRng = .Range.Characters.Last
For Each Cell In xlRng
wdRng.InsertAfter vbCr & Cell.Offset(0, -5).Text
Select Case LCase(Cell.Value)
Case "title"
wdRng.Paragraphs.Last.Style = .Styles("Title")
Case "main"
wdRng.Paragraphs.Last.Style = .Styles("Heading 2")
End Select
Next Cell
'objWord.TablesOfContents(1).Update
WordDoc.SaveAs2 Environ$("Temp") & "\" & _
ThisWorkbook.Sheets("OtherData").Range("AK2").Value & ", " & _
ReplaceIllegalCharacters(ThisWorkbook.Sheets("OtherData").Range("AK8").Value, "-") & ", " & _
ThisWorkbook.Sheets("OtherData").Range("AU18").Value & ".docx"
End With
WordDoc.Close
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
ErrorHandlerEndExecution:
WordDoc.Close
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
'Application.ScreenUpdating = True
End Sub
Запуск этого кода дает ошибку:

Указывает на WordDoc.Close
после ErrorHandlerEndExecution:
.
Если я правильно понимаю, в случае любой ошибки следует перейти к разделу ErrorHandlerEndExecution:
и выполнить действия ниже этой строки. Иначе это не следует учитывать? В чем проблема в текущем коде и как ее исправить?