Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #1 Добавлено: 16.06.06 09:39
А так не проще использовать в цикле?
    If IsDate(Arr1(ii, dCol)) Then
        dRow = CDate(Arr1(ii, dCol))
    End If

Ответить

Номер ответа: 2
Автор ответа:
 Vilor



Вопросов: 5
Ответов: 28
 Профиль | | #2 Добавлено: 16.06.06 21:16
Не получается Arr1(ii, dCol) не является переменной типа дата

Ответить

Номер ответа: 3
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #3 Добавлено: 17.06.06 17:59
Не получается Arr1(ii, dCol) не является переменной типа дата
IsDate похренам какого типа переменная - если ее можно пробразовать в тип дата - то условие выполняется - иначе не выполняется. В чем проблема?

Ответить

Номер ответа: 4
Автор ответа:
 Vilor



Вопросов: 5
Ответов: 28
 Профиль | | #4 Добавлено: 17.06.06 23:02
...уже никаких проблем. Прошу прощения, предыдущий ответ я писал опираясь на прошлый опыт использования isDate, при котором, возможно (уже и не помню) были другие ошибки.
Большое спасибо за помощь!!!!!!!!!!!!!!!!!!!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам