Страница: 1 |
|
Вопрос: Обработка ошибок
|
Добавлено: 15.06.06 21:00
|
|
Автор вопроса: Vilor
|
'Как правильно осуществить обработку ошибок в цикле следующего вида:
Option Explicit
Public Arr1 As Variant 'массив, считываемый из *.txt файла
Const dCol = 2 'номер столбца массива, содержащего дату в формате "DD/mm/yyyy", но возможно и содержимое типа "--/--/----"
Sub Read(Arr1 As Variant, b_Result As Boolean)
Dim dRow As Date
b_Result = False
For ii = 1 To UBound(Arr1, 1)
On Error GoTo ErrDateFix:
dRow = VBA.CDate(Arr1(ii, dCol))
RetErrDateFix: 'возвращаемся в цикл
Next ii
Exit1: b_Result = True
Exit Sub
ErrDateFix: dRow = VBA.Format(VBA.Date, "DD/mm/yyyy")
Err.Clear
On Error GoTo Err01:
GoTo RetErrDateFix:
Exit Sub
Err01: b_Result = False 'выход с ошибкой
End Sub
Ответить
|
Номер ответа: 1 Автор ответа:
Незнайка
![](images/starBlue.gif) ![](images/starBlue.gif)
Вопросов: 7 Ответов: 188
|
Профиль | | #1
|
Добавлено: 16.06.06 09:39
|
А так не проще использовать в цикле?
If IsDate(Arr1(ii, dCol)) Then
dRow = CDate(Arr1(ii, dCol))
End If
Ответить
|
Номер ответа: 3 Автор ответа:
Незнайка
![](images/starBlue.gif) ![](images/starBlue.gif)
Вопросов: 7 Ответов: 188
|
Профиль | | #3
|
Добавлено: 17.06.06 17:59
|
Не получается Arr1(ii, dCol) не является переменной типа дата IsDate похренам какого типа переменная - если ее можно пробразовать в тип дата - то условие выполняется - иначе не выполняется. В чем проблема?
Ответить
|
Страница: 1 |
Поиск по форуму