Excel VBA :Оператор Goto при ошибке не работает внутри For -Цикл

. Я пытаюсь просмотреть таблицу в Excel. Первые три столбца этой таблицы имеют текстовые заголовки, остальные — даты в качестве заголовков. Я хочу последовательно присвоить эти даты переменной типа Date -, а затем выполнить некоторые операции на основе даты

. Для этого я использую цикл foreach для myTable.ListColumns. Поскольку первые три столбца не имеют заголовков даты, я попытался настроить цикл таким образом, чтобы в случае ошибки при присвоении строки заголовка переменной типа даты -цикл переходил прямо к следующему столбцу

. ] Кажется, это работает для первого столбца. Однако, когда заголовок второго столбца «назначается» переменной типа даты -, макрос обнаруживает ошибку, даже если он находится в блоке обработки ошибки -

Dim myCol As ListColumn
For Each myCol In myTable.ListColumns
    On Error GoTo NextCol

    Dim myDate As Date
    myDate = CDate(myCol.Name)

    On Error GoTo 0

    'MORE CODE HERE

NextCol:
    On Error GoTo 0
Next myCol

. Повторюсь, ошибка возникает во втором раунде цикла, в операторе

myDate = CDate(myCol.Name)

Кто-нибудь может объяснить, почему оператор On Error перестает работать?

16
задан Swiftslide 17 August 2012 в 01:52
поделиться