2016-04-13 8 views
0

私はこのコードがなぜ1を印刷しないのか不思議でした。私は0がarr_bed変数を上書きしていることを知っています。しかし、どのように私は0と1の両方を持つコードを区別できるようにすることができますか?ありがとう!それ以外の場合は0または1を指定してください - VBA

For n = 3 To time_frame + 3 
      For i = 3 To 1002 

        If (Cells(i, "U").Value = Cells(n, "X").Value) Then 
        arr_bed = 1 ' admission (HH) 
        Else 
        arr_bed = 0 

        Cells(n, "Y").Value = arr_bed 
        End If 
        Next i 

        Next n 

答えて

0

は、あなたはそれが発見されたときのために終了して、内側のループの外に出力を移動する必要があります。

For n = 3 To time_frame + 3 
    arr_bed = 0 
    For i = 3 To 1002 
     If (Cells(i, "U").Value = Cells(n, "X").Value) Then 
      arr_bed = 1 
      Exit For ' admission (HH) 
     End If 
    Next i 
    Cells(n, "Y").Value = arr_bed 
Next n 

ちょうど別のノート:あなたは、コードの残りの部分を見ることなく(シートを修飾する必要があります私はあなたのためにこれを行う方法を想定したくない)。

+0

Scott。出力に0と1の両方を表示するのに必要なelse部分を削除しました。私はまだ文が真であるときに1を印刷するという目標に達していない。 – Zapata

+0

@Hamidkhいいえ、それは内側のループの前です。それを試しましたか? –

+0

はいそうでした。それは私に1を与えない0が印刷されます。 – Zapata

関連する問題