Использую такой код для открытия книги:
Код:
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