2016-09-03 3 views
-2

Я написал следующую инструкцию IF в цикле, и если счетчик увеличивается на 1, если утверждение истинно.count в IF statement

Проблема в том, что даже если утверждение неверно, счетчик увеличивается на один так или иначе.

For i = 2 To lRow 
If (ptfile.Worksheets(1).Cells(i + 1, 17).Value - ptfile.Worksheets(1).Cells(i, 17).Value) < 1440 Or (ptfile.Worksheets(1).Cells(i + 1, 17).Value - ptfile.Worksheets(1).Cells(i, 17).Value) > 1440 Then 
cnt = cnt + 1 
casenames2.Worksheets(1).Cells(cnt, 2).Value = ptnames 
casenames2.Worksheets(1).Cells(cnt, 3).Value = i 
End If 

Next i 

Ошибка - ошибка времени выполнения 6, переполнение. Пожалуйста, помогите,

+0

В какой строке кода выдается ошибка? – TimeToCode

+0

Как объявляются 'i' и' cnt'? Каково значение 'lRow' при переполнении? Когда вы говорите «счетчик», вы имеете в виду счетчик *** *** ***, или переменную 'cnt'? – Comintern

+0

Я имел в виду счетчик циклов. Ошибка была в выражении if, как в ответе ниже. – devakotia

ответ

2

Упрощая свой IF заявление он говорит

If (something) < 1440 Or (something) > 1440 Then 
    cnt = cnt + 1 

Таким образом, единственный случай, когда условие ложно, и счетчик не увеличивается, когда (то) равна 1440 точно.