Использую такой код для открытия книги:
Код:
Sub Макрос()
Dim Книга As Workbook, FN As String
' Полное имя (путь + имя) книги, которую надо открыть.
FN = "C:\Users\User\Desktop\Книга1.xlsb"
' Открытие книги.
Set Книга = Workbooks.Open(FileName:=FN)
End Sub
Но иногда, при открытии книги происходит ошибка, если с книгой проблема (обнаружено содержимое, которое не удалось прочитать). В этом случае макрос прерывается и появляется ошибка.
Что нужно сделать, чтобы во время открытия повреждённой книги макрос не прерывался, а продолжал работу, и чтобы было понятно, что книга не открылась?
Ошибку можно перехватить с помощью On Error и затем, анализируя переменную "Книга" с помощью If ... Then, можно понять - открылась книга или нет.
Код:
Sub Макрос()
Dim Книга As Workbook, FN As String
' Полное имя (путь + имя) книги, которую надо открыть.
FN = "C:\Users\User\Desktop\Книга1.xlsb"
' Открытие книги.
On Error Resume Next
Set Книга = Workbooks.Open(FileName:=FN)
On Error GoTo 0
' Проверка, открылась книга или нет.
If Книга Is Nothing Then
MsgBox "Книга не открылась.", vbExclamation
Exit Sub
End If
End Sub