Циклическая обработка с использованием обработчика ошибок - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема с обработчиком ошибок, который, по моему мнению, связан с недостатком знаний о тонких деталях кодирования ошибок.

У меня есть диапазон A5: A10 содержит строки, каждая строка - это имя книги, которую я хочу открыть, взять данные, закрыть.Открытие и использование данных и т. Д. Работает нормально.

Важно, если файл отсутствует, я хочу, чтобы "N" рядом с именем файла в столбце B смещение (0,1) к имени файла.Следовательно, обработчик ошибок пытается это сделать.Кроме того, «Y» должен быть найден файл.

Цель обработчика ошибок - поставить «N», а затем переходить к следующему файлу, пока он не пройдет по всем файлам ......

.... ПРОБЛЕМА (я думаю, что это проблема) заключается в том, что, если имя файла LAST в A10 отсутствует, оно отлаживает / завершает работу с ошибкой, потому что пытается повторить цикл снова, когда я действительно хочу завершитьтак как это последнее имя файла (что-нибудь до этого, скажем, например, в A9, я действительно хочу, чтобы оно проходило по циклу).

Любая помощь в том, что я могу добавить / изменить так, чтобы он циклически проходил, но зналостановка после A10?

For Each FileName In Range("A5", Range("A5").End(xlDown))

Dim CustodyStartCell As Range, OurStartCell As Range

    On Error GoTo NoWorkbook

    Workbooks.Open (FileLocation & "\" & FileName)

    Set CustodyStartCell = Range("A22")
    Set OurStartCell = FileName.Offset(0, 10)

    For Data = 2 To 10 Step 2

    OurStartCell.Value = CustodyStartCell.Offset(0, Data)

    Set OurStartCell = OurStartCell.Offset(0, 1)

    Next

   FileName.Offset(0, 1).Value = "Y"

   Workbooks(FileName.Value).Close SaveChanges:=False

NextFileName:
Next FileName

NoWorkbook:
   FileName.Offset(0, 1).Value = "N"
   Resume NextFileName


End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...