У меня есть следующий код, который преобразует листы Excel с указанными именами c листов в PDF, а затем зацикливается в папке. Пользователь может ввести имя инструмента в инструмент для кода до l oop для. Однако, если имя листа неверно или не существует, отображается ошибка времени выполнения 9: нижний индекс выходит за пределы диапазона. Вместо этой ошибки я хотел бы получить MsgBox и затем выйти из Sub. Я попытался использовать метод On Error GoTo, который работает, когда код не соответствует имени листа в ячейке ссылки и показывает соответствующее сообщение. Однако, когда вставлено правильное имя листа, оно показывает это сообщение и также не выполняет код.
Как я могу это исправить, чтобы я получал сообщение только тогда, когда код не находит имя листа, и в случае, если это так, он завершает код?
Это где я сталкиваюсь с вопросом
On Error GoTo ErrorExit
'Even when the cell value matches the sheet's name, I still get an error and it exist the sub
Set reportSheet = Sheets(reportSheetName)
ErrorExit:
MsgBox "Incorrect Sheet Name or It Does Not Exist"
Exit Sub
Dim settingsSheet As Worksheet 'Source
Dim reportSheet As Worksheet 'To convert to PDF
Dim targetColumnsRange As Range 'feeds from source
Dim targetRowsRange As Range
Dim reportSheetName As String 'source sheet with the target's sheet name
Dim reportColumnsAddr As String
Dim reportRowsAddr As String
' Set a reference to the settings sheet
Set settingsSheet = ThisWorkbook.Worksheets("Sheet1") ' source
' Gather the report sheet's name
reportSheetName = settingsSheet.Range("C7").Value ' good
On Error GoTo ErrorExit
'If this doesnt match, display the message and exit sub, else continue the sub
Set reportSheet = Sheets(reportSheetName)
ErrorExit:
MsgBox "Incorrect Sheet Name or It Does Not Exist"
Exit Sub