2016-09-03 4 views
-2

次のIF文をループで記述し、文が真であればカウンタが1増加すると、IF文中の数

ステートメントが真でない場合でも、カウンタは1つ増えます。

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'の値は何ですか?あなたが "カウンタ"と言うときは、***ループカウンタ*** 'i'、または変数' cnt'を参照していますか? – Comintern

+0

私はループカウンタを参照していました。以下の答えのようにif文にエラーがありました。 – devakotia

答えて

2

があなたのIF文を簡素化してくださいそれは(何かが)正確に1440に等しいとき

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

ので、条件がFALSEで、カウンタが増加されていない唯一のケースがあると言います。