Страницы: 1
RSS
Обработка ошибки в цикле
 
Уважаемые форумчане помогите пожалуйста Не работет обработка ошибок в цикле
вот кусочек на котором ошибка, ошибка обрабатывается 1 раз, при повторном возникновении выдает ошибку
Код
On Err GoTo dsa
If Sheets(1).Cells(i, 15) < 0 Then Sheets(1).Cells(i, 15) = 0
dsa:


Err.clear - не помогло(((
Если очень захотеть - можно в космос полететь ;)
 
По этому фрагменту ничего не понятно. Файл можете приложить?
Согласие есть продукт при полном непротивлении сторон
 
В dsa первым делом нужно Err.Clear
 
Код
If not iserror(Sheets(1).Cells(i, 15)) then
If Sheets(1).Cells(i, 15) < 0 Then Sheets(1).Cells(i, 15) = 0
end if

или
Код
'игнорируем ошибку
On error resume next
'цикл
For i = 1 to 10
If Sheets(1).Cells(i, 15) < 0 Then Sheets(1).Cells(i, 15) = 0
next i
'отключаем игнорирование ошибок
on error goto 0


А вообще лучше приводить не обсосанный кусочек кода, а такой отрезок, чтобы было понятно для чего такая обработка нужна. ну и на словах пояснить, какую ошибку обрабатываете и что хотите получить.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
спасибо!
Решение с игнорированием ошибки очень устраивает, хотелось бы узнать , возможно ли допустим сразу в  Sheets(1).Cells(i, 15).Formula = "=n" & i & "/100" & "*" & "e" & i дописать условие? допустим что то вроде если ошибка или Sheets(1).Cells(i, 15) < 0 то 0 в пртивном случае выводить результат решения формулы?
Если очень захотеть - можно в космос полететь ;)
 
не проверял:
Код
"=If(ISERROR(n" & i & "/100*e" & i & "),"""",n" & i & "/100*e" & i & ")"


а еще предположу, что можно проверять сразу:
Код
"=If(e" & i  & "<>0, n" & i & "/100*e" & i & "),"""")"
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist,  Спасибо огромное!
Если очень захотеть - можно в космос полететь ;)
Страницы: 1
Наверх