Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработчик ошибок On Error / 15 сообщений из 15, страница 1 из 1
20.12.2011, 11:02
    #37584488
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Проблема в следующем.
Когда встречается первая строка с ложным путем к файлу - все отрабатывается как надо...
Когда появляется еще одна такая же запись выполнение скрипта останавливается и выпадает
Runtime Error: 53. File not found - (это я и без него знаю...)
Как я понял причина в том, что счетчик ошибки не сбрасывается, так как я нахожусь внутри процедуры...
Как сделать так, чтобы я его мог сбросить спокойно?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Sub CheckLoggs()
    'Процедура проверки лога
    
    Dim stream1 As Range 'Диапазон от начала списка ниже заголовка до конца списка
    Dim fDateTime As Date 'Параметр дата изменения файла
    Dim fDateTimeDif As Integer 'Значение разницы от текущего времени до даты создания файла
    Dim inx As Integer 'Счетчик для цикла

    Set stream1 = Range("B4").End(xlDown)   'Выбираем список
    Cells(4, 2).Activate
    
    'По скольку дело имеем с количеством ресурсов требуемых для бекапа то
    'конечная строка на 99,9999% должна быть менее 1 миллиона - в виду ограничения инфраструктуры
    If stream1.Row > 1000000 Then
    'Если конечная строка больше миллиона, то скорее всего в файле нет ни одной заполненной строки
        MsgBox ("Нечего искать - введите пути к файлам!")
        Exit Sub
    End If

    
    For inx = 4 To stream1.Row
       
    On Error GoTo FileErrorMarker
        
        fDateTime = FileDateTime(Cells(inx, 2))  'Узнаем дату изменения файла по пути из нашего списка
    
        Cells(inx, 4) = FormatDateTime(fDateTime, vbShortDate) 'Выводим дату создания файла в таблицу /для справки
        Cells(inx, 5) = FormatDateTime(fDateTime, vbShortTime) 'Выводим дату создания файла в таблицу /для справки
    
        'Получаем разницу во времени, преобразованную в минуту
        fDateTimeDif = GetMinutesFromDate((Now - fDateTime)) 'Вычитаем даты
        Cells(inx, 7) = fDateTimeDif 'Разница во времени в минутах
        
        If fDateTimeDif <= Val(Cells(inx, 3)) Then 'Если разница меньше трешхолда - то все ОК. Если больше - то генерировать аварию
            Cells(inx, 6) = "OK"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), False)
        Else
            Cells(inx, 6) = "!!! ALARM !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
        
FileErrorMarker:
        If Cells(inx, 6) = "" Then
            Cells(inx, 6) = "!!! NO FILE !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
    Next inx
End Sub
...
Рейтинг: 0 / 0
20.12.2011, 11:05
    #37584493
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Может подскажете какую функция для проверки наличия файла
...
Рейтинг: 0 / 0
20.12.2011, 11:10
    #37584503
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Пока сделал так - подскажите более разумное решение.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Sub CheckLoggs()
    '&#207;&#240;&#238;&#246;&#229;&#228;&#243;&#240;&#224; &#239;&#240;&#238;&#226;&#229;&#240;&#234;&#232; &#235;&#238;&#227;&#224;
    
    Dim stream1 As Range '&#196;&#232;&#224;&#239;&#224;&#231;&#238;&#237; &#238;&#242; &#237;&#224;&#247;&#224;&#235;&#224; &#241;&#239;&#232;&#241;&#234;&#224; &#237;&#232;&#230;&#229; &#231;&#224;&#227;&#238;&#235;&#238;&#226;&#234;&#224; &#228;&#238; &#234;&#238;&#237;&#246;&#224; &#241;&#239;&#232;&#241;&#234;&#224;
    Dim fDateTime As Date '&#207;&#224;&#240;&#224;&#236;&#229;&#242;&#240; &#228;&#224;&#242;&#224; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224;
    Dim fDateTimeDif As Integer '&#199;&#237;&#224;&#247;&#229;&#237;&#232;&#229; &#240;&#224;&#231;&#237;&#232;&#246;&#251; &#238;&#242; &#242;&#229;&#234;&#243;&#249;&#229;&#227;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232; &#228;&#238; &#228;&#224;&#242;&#251; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224;
    Dim inx As Integer '&#209;&#247;&#229;&#242;&#247;&#232;&#234; &#228;&#235;&#255; &#246;&#232;&#234;&#235;&#224;

    Set stream1 = Range("B4").End(xlDown)   '&#194;&#251;&#225;&#232;&#240;&#224;&#229;&#236; &#241;&#239;&#232;&#241;&#238;&#234;
    Cells(4, 2).Activate
    
    '&#207;&#238; &#241;&#234;&#238;&#235;&#252;&#234;&#243; &#228;&#229;&#235;&#238; &#232;&#236;&#229;&#229;&#236; &#241; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238;&#236; &#240;&#229;&#241;&#243;&#240;&#241;&#238;&#226; &#242;&#240;&#229;&#225;&#243;&#229;&#236;&#251;&#245; &#228;&#235;&#255; &#225;&#229;&#234;&#224;&#239;&#224; &#242;&#238;
    '&#234;&#238;&#237;&#229;&#247;&#237;&#224;&#255; &#241;&#242;&#240;&#238;&#234;&#224; &#237;&#224; 99,9999% &#228;&#238;&#235;&#230;&#237;&#224; &#225;&#251;&#242;&#252; &#236;&#229;&#237;&#229;&#229; 1 &#236;&#232;&#235;&#235;&#232;&#238;&#237;&#224; - &#226; &#226;&#232;&#228;&#243; &#238;&#227;&#240;&#224;&#237;&#232;&#247;&#229;&#237;&#232;&#255; &#232;&#237;&#244;&#240;&#224;&#241;&#242;&#240;&#243;&#234;&#242;&#243;&#240;&#251;
    If stream1.Row > 1000000 Then
    '&#197;&#241;&#235;&#232; &#234;&#238;&#237;&#229;&#247;&#237;&#224;&#255; &#241;&#242;&#240;&#238;&#234;&#224; &#225;&#238;&#235;&#252;&#248;&#229; &#236;&#232;&#235;&#235;&#232;&#238;&#237;&#224;, &#242;&#238; &#241;&#234;&#238;&#240;&#229;&#229; &#226;&#241;&#229;&#227;&#238; &#226; &#244;&#224;&#233;&#235;&#229; &#237;&#229;&#242; &#237;&#232; &#238;&#228;&#237;&#238;&#233; &#231;&#224;&#239;&#238;&#235;&#237;&#229;&#237;&#237;&#238;&#233; &#241;&#242;&#240;&#238;&#234;&#232;
        MsgBox ("&#205;&#229;&#247;&#229;&#227;&#238; &#232;&#241;&#234;&#224;&#242;&#252; - &#226;&#226;&#229;&#228;&#232;&#242;&#229; &#239;&#243;&#242;&#232; &#234; &#244;&#224;&#233;&#235;&#224;&#236;!")
        Exit Sub
    End If

    
    For inx = 4 To stream1.Row
       
    If Dir(Cells(inx, 2)) <> "" Then
        
        fDateTime = FileDateTime(Cells(inx, 2))  '&#211;&#231;&#237;&#224;&#229;&#236; &#228;&#224;&#242;&#243; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#239;&#238; &#239;&#243;&#242;&#232; &#232;&#231; &#237;&#224;&#248;&#229;&#227;&#238; &#241;&#239;&#232;&#241;&#234;&#224;
    
        Cells(inx, 4) = FormatDateTime(fDateTime, vbShortDate) '&#194;&#251;&#226;&#238;&#228;&#232;&#236; &#228;&#224;&#242;&#243; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#226; &#242;&#224;&#225;&#235;&#232;&#246;&#243; /&#228;&#235;&#255; &#241;&#239;&#240;&#224;&#226;&#234;&#232;
        Cells(inx, 5) = FormatDateTime(fDateTime, vbShortTime) '&#194;&#251;&#226;&#238;&#228;&#232;&#236; &#228;&#224;&#242;&#243; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#226; &#242;&#224;&#225;&#235;&#232;&#246;&#243; /&#228;&#235;&#255; &#241;&#239;&#240;&#224;&#226;&#234;&#232;
    
        '&#207;&#238;&#235;&#243;&#247;&#224;&#229;&#236; &#240;&#224;&#231;&#237;&#232;&#246;&#243; &#226;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232;, &#239;&#240;&#229;&#238;&#225;&#240;&#224;&#231;&#238;&#226;&#224;&#237;&#237;&#243;&#254; &#226; &#236;&#232;&#237;&#243;&#242;&#243;
        fDateTimeDif = GetMinutesFromDate((Now - fDateTime)) '&#194;&#251;&#247;&#232;&#242;&#224;&#229;&#236; &#228;&#224;&#242;&#251;
        Cells(inx, 7) = fDateTimeDif '&#208;&#224;&#231;&#237;&#232;&#246;&#224; &#226;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232; &#226; &#236;&#232;&#237;&#243;&#242;&#224;&#245;
        
        If fDateTimeDif <= Val(Cells(inx, 3)) Then '&#197;&#241;&#235;&#232; &#240;&#224;&#231;&#237;&#232;&#246;&#224; &#236;&#229;&#237;&#252;&#248;&#229; &#242;&#240;&#229;&#248;&#245;&#238;&#235;&#228;&#224; - &#242;&#238; &#226;&#241;&#229; &#206;&#202;. &#197;&#241;&#235;&#232; &#225;&#238;&#235;&#252;&#248;&#229; - &#242;&#238; &#227;&#229;&#237;&#229;&#240;&#232;&#240;&#238;&#226;&#224;&#242;&#252; &#224;&#226;&#224;&#240;&#232;&#254;
            Cells(inx, 6) = "OK"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), False)
        Else
            Cells(inx, 6) = "!!! ALARM !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
        
    Else
        If Cells(inx, 6) = "" Then
            Cells(inx, 6) = "!!! NO FILE !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
    End If
    Next inx
End Sub
...
Рейтинг: 0 / 0
20.12.2011, 11:13
    #37584507
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Пока сделал так..
Подскажите более разумное решение...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Sub CheckLoggs()
    '&#207;&#240;&#238;&#246;&#229;&#228;&#243;&#240;&#224; &#239;&#240;&#238;&#226;&#229;&#240;&#234;&#232; &#235;&#238;&#227;&#224;
    
    Dim stream1 As Range '&#196;&#232;&#224;&#239;&#224;&#231;&#238;&#237; &#238;&#242; &#237;&#224;&#247;&#224;&#235;&#224; &#241;&#239;&#232;&#241;&#234;&#224; &#237;&#232;&#230;&#229; &#231;&#224;&#227;&#238;&#235;&#238;&#226;&#234;&#224; &#228;&#238; &#234;&#238;&#237;&#246;&#224; &#241;&#239;&#232;&#241;&#234;&#224;
    Dim fDateTime As Date '&#207;&#224;&#240;&#224;&#236;&#229;&#242;&#240; &#228;&#224;&#242;&#224; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224;
    Dim fDateTimeDif As Integer '&#199;&#237;&#224;&#247;&#229;&#237;&#232;&#229; &#240;&#224;&#231;&#237;&#232;&#246;&#251; &#238;&#242; &#242;&#229;&#234;&#243;&#249;&#229;&#227;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232; &#228;&#238; &#228;&#224;&#242;&#251; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224;
    Dim inx As Integer '&#209;&#247;&#229;&#242;&#247;&#232;&#234; &#228;&#235;&#255; &#246;&#232;&#234;&#235;&#224;

    Set stream1 = Range("B4").End(xlDown)   '&#194;&#251;&#225;&#232;&#240;&#224;&#229;&#236; &#241;&#239;&#232;&#241;&#238;&#234;
    Cells(4, 2).Activate
    
    '&#207;&#238; &#241;&#234;&#238;&#235;&#252;&#234;&#243; &#228;&#229;&#235;&#238; &#232;&#236;&#229;&#229;&#236; &#241; &#234;&#238;&#235;&#232;&#247;&#229;&#241;&#242;&#226;&#238;&#236; &#240;&#229;&#241;&#243;&#240;&#241;&#238;&#226; &#242;&#240;&#229;&#225;&#243;&#229;&#236;&#251;&#245; &#228;&#235;&#255; &#225;&#229;&#234;&#224;&#239;&#224; &#242;&#238;
    '&#234;&#238;&#237;&#229;&#247;&#237;&#224;&#255; &#241;&#242;&#240;&#238;&#234;&#224; &#237;&#224; 99,9999% &#228;&#238;&#235;&#230;&#237;&#224; &#225;&#251;&#242;&#252; &#236;&#229;&#237;&#229;&#229; 1 &#236;&#232;&#235;&#235;&#232;&#238;&#237;&#224; - &#226; &#226;&#232;&#228;&#243; &#238;&#227;&#240;&#224;&#237;&#232;&#247;&#229;&#237;&#232;&#255; &#232;&#237;&#244;&#240;&#224;&#241;&#242;&#240;&#243;&#234;&#242;&#243;&#240;&#251;
    If stream1.Row > 1000000 Then
    '&#197;&#241;&#235;&#232; &#234;&#238;&#237;&#229;&#247;&#237;&#224;&#255; &#241;&#242;&#240;&#238;&#234;&#224; &#225;&#238;&#235;&#252;&#248;&#229; &#236;&#232;&#235;&#235;&#232;&#238;&#237;&#224;, &#242;&#238; &#241;&#234;&#238;&#240;&#229;&#229; &#226;&#241;&#229;&#227;&#238; &#226; &#244;&#224;&#233;&#235;&#229; &#237;&#229;&#242; &#237;&#232; &#238;&#228;&#237;&#238;&#233; &#231;&#224;&#239;&#238;&#235;&#237;&#229;&#237;&#237;&#238;&#233; &#241;&#242;&#240;&#238;&#234;&#232;
        MsgBox ("&#205;&#229;&#247;&#229;&#227;&#238; &#232;&#241;&#234;&#224;&#242;&#252; - &#226;&#226;&#229;&#228;&#232;&#242;&#229; &#239;&#243;&#242;&#232; &#234; &#244;&#224;&#233;&#235;&#224;&#236;!")
        Exit Sub
    End If

    
    For inx = 4 To stream1.Row
       
    If Dir(Cells(inx, 2)) <> "" Then
        
        fDateTime = FileDateTime(Cells(inx, 2))  '&#211;&#231;&#237;&#224;&#229;&#236; &#228;&#224;&#242;&#243; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#239;&#238; &#239;&#243;&#242;&#232; &#232;&#231; &#237;&#224;&#248;&#229;&#227;&#238; &#241;&#239;&#232;&#241;&#234;&#224;
    
        Cells(inx, 4) = FormatDateTime(fDateTime, vbShortDate) '&#194;&#251;&#226;&#238;&#228;&#232;&#236; &#228;&#224;&#242;&#243; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#226; &#242;&#224;&#225;&#235;&#232;&#246;&#243; /&#228;&#235;&#255; &#241;&#239;&#240;&#224;&#226;&#234;&#232;
        Cells(inx, 5) = FormatDateTime(fDateTime, vbShortTime) '&#194;&#251;&#226;&#238;&#228;&#232;&#236; &#228;&#224;&#242;&#243; &#241;&#238;&#231;&#228;&#224;&#237;&#232;&#255; &#244;&#224;&#233;&#235;&#224; &#226; &#242;&#224;&#225;&#235;&#232;&#246;&#243; /&#228;&#235;&#255; &#241;&#239;&#240;&#224;&#226;&#234;&#232;
    
        '&#207;&#238;&#235;&#243;&#247;&#224;&#229;&#236; &#240;&#224;&#231;&#237;&#232;&#246;&#243; &#226;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232;, &#239;&#240;&#229;&#238;&#225;&#240;&#224;&#231;&#238;&#226;&#224;&#237;&#237;&#243;&#254; &#226; &#236;&#232;&#237;&#243;&#242;&#243;
        fDateTimeDif = GetMinutesFromDate((Now - fDateTime)) '&#194;&#251;&#247;&#232;&#242;&#224;&#229;&#236; &#228;&#224;&#242;&#251;
        Cells(inx, 7) = fDateTimeDif '&#208;&#224;&#231;&#237;&#232;&#246;&#224; &#226;&#238; &#226;&#240;&#229;&#236;&#229;&#237;&#232; &#226; &#236;&#232;&#237;&#243;&#242;&#224;&#245;
        
        If fDateTimeDif <= Val(Cells(inx, 3)) Then '&#197;&#241;&#235;&#232; &#240;&#224;&#231;&#237;&#232;&#246;&#224; &#236;&#229;&#237;&#252;&#248;&#229; &#242;&#240;&#229;&#248;&#245;&#238;&#235;&#228;&#224; - &#242;&#238; &#226;&#241;&#229; &#206;&#202;. &#197;&#241;&#235;&#232; &#225;&#238;&#235;&#252;&#248;&#229; - &#242;&#238; &#227;&#229;&#237;&#229;&#240;&#232;&#240;&#238;&#226;&#224;&#242;&#252; &#224;&#226;&#224;&#240;&#232;&#254;
            Cells(inx, 6) = "OK"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), False)
        Else
            Cells(inx, 6) = "!!! ALARM !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
        
    Else
        If Cells(inx, 6) = "" Then
            Cells(inx, 6) = "!!! NO FILE !!!"
            Call MarkAnError(Range(Cells(inx, 2), Cells(inx, 6)), True)
        End If
    End If
    Next inx
End Sub
...
Рейтинг: 0 / 0
20.12.2011, 11:47
    #37584579
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
p0oh!,

Обработчик ошибки должен заканчиваться оператором Resume, а у тебя получается, что обработчик не закончил свою работу, а ты в нем уже новую ошибку генеришь
...
Рейтинг: 0 / 0
20.12.2011, 12:51
    #37584712
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
О как. Спасибо.
...
Рейтинг: 0 / 0
20.12.2011, 12:56
    #37584718
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Shocker.Prop0oh!,

Обработчик ошибки должен заканчиваться оператором Resume, а у тебя получается, что обработчик не закончил свою работу, а ты в нем уже новую ошибку генеришь

не обязательно, всё зависит от логики обработчика и от структуры вызовов
...
Рейтинг: 0 / 0
20.12.2011, 13:10
    #37584758
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Konst_OneShocker.Prop0oh!,

Обработчик ошибки должен заканчиваться оператором Resume, а у тебя получается, что обработчик не закончил свою работу, а ты в нем уже новую ошибку генеришь

не обязательно, всё зависит от логики обработчика и от структуры вызовов

ну хорошо, дополню - "...либо выходом из процедуры."

нельзя циклически вызывать ошибку, не сделав Resume
...
Рейтинг: 0 / 0
20.12.2011, 13:12
    #37584766
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
можно принудительно сделать Err.Clear или вызвать свой Err.Raise или On Error Resume Next > On Error Goto 0 и тд и тп GOTO тже никто не отменял . вариантов полно, всё зависит от логики, которую нужно реализовать
...
Рейтинг: 0 / 0
20.12.2011, 13:22
    #37584790
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Konst_One, можно поподробнее про конструкцию с принудительным сбросом.


Логика такая:

При ошибке следующего блока:
[блок]
выполнить действие:
[действие]
и сбросить ошибку.
...
Рейтинг: 0 / 0
20.12.2011, 13:35
    #37584824
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
p0oh!,

в твоем случае лучше так, наверное
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
On Error Resume Next
'команда с ошибкой
If Err=0 Then
  On Error Goto 0
  'команды в случае отсутствия ошибки
End If
On Error Goto 0
Next

тогда не надо заморачиваться с обработчиком
...
Рейтинг: 0 / 0
22.12.2011, 11:07
    #37588436
AlexCriv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
p0oh!,
прощще всего не изменяя алгоритма выделить команду с ошибкой, то бишь FileDateTime(Cells(inx, 2)
в отдельную фнкцию, которая при отсутствии файла будет возвращать пустую строку, а поскольку обработчик ошибки будет в другой функции проблемы со вторым вызовом исчезнут.
ну и Err.Clear в любом случае не помешает...
...
Рейтинг: 0 / 0
18.01.2012, 09:20
    #37619323
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Огромное спасибо
...
Рейтинг: 0 / 0
18.01.2012, 09:27
    #37619336
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Есть еще нигде не описанный On Error Goto -1, который отменяет текущую метку как обработчик ошибки и в ней можно делать новый on error и генерить новую ошибку.
...
Рейтинг: 0 / 0
18.01.2012, 10:25
    #37619430
p0oh!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик ошибок On Error
Как вариант

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
On Error Resume Next
If Err.Number > 0 then
'Выполнить какие то действия
Err = 0
Else

end if
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработчик ошибок On Error / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]