2017-05-05 18 views
0

ステートメントを実行しようとしていますが、変数の値が"Mils"に等しい場合、指定された機能が実行されます。しかし、現在何も起こっていません。"If/Then"ステートメントが機能しない

私は間違っていますか?

z = Sheet2.range("B20").value 
If z = "Mils" Then 
    Set cx = Sheet8.range("D3", Sheet8.range("D3").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value/y 
    Next rng 
    Set cy = Sheet8.range("E3", Sheet8.range("E3").End(xlDown)) 
    For Each rngy In cy 
     rngy.value = rngy.value/y 
    Next rngy 
End If 
+2

'z = Sheet2.range'行にブレークポイントを設定してコードをステップ実行すると、何が起こっているのでしょうか? 'If​​ z =" Mils "Then'行に達したときの' z'の値は?コードを踏ん張り続けるとどうなりますか? –

+0

申し訳ありませんが、よく分かりません –

+1

'z ='行にカーソルを置き、F9を押します。コードが実行されてそのポイントに達すると、コードは停止します。そのコード行を実行するにはF8キーを押します。それは再び止まるでしょう。 'z 'に何が含まれているか調べ、F8をもう一度押して' If z = 'という行を実行します。それは再び止まるでしょう。 F8キーを押してコードをステップ実行し、次に進む場所を確認します。 –

答えて

1

私が読んでいたものから、あなたのプログラムは、おそらくあなたの命令の一部を無視しました。

1)の上にカーソルを置いて、コードをクリックします。

は、この問題の解決方法を試してみてください。

If z = "Mils" Then 

2)徐々にF8キーをクリックすると、その行

3)にマークを置くためにF9をクリックします(このキーは何それはそのコードまでプログラムを実行します。それは基本的にあなたの流れを示しているので、あなたのプログラムの)

4)F8の中で、あなたのコードのいずれかをスキップするかどうかを確認:。

If z = "Mils" Then 
    Set cx = Sheet8.range("D3", Sheet8.range("D3").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value/y 
    Next rng 
    Set cy = Sheet8.range("E3", Sheet8.range("E3").End(xlDown)) 
    For Each rngy In cy 
     rngy.value = rngy.value/y 
    Next rngy 
End If 

それはどんなステップをスキップした場合、あなたはおそらく、スキップされた手順を見て、NEをしなければなりませんセサリー調整。

+1

マイナーな問題 - 「カーソルをホバーオーバー」 - F9を押す前に実際に行をクリックしなければなりません。そうしないと、マウスがホバーオーバーしているのではなく、現在の行がブレークポイントになります。 (PS)また、行の左側にある境界線の領域をクリックすることで、キーストロークを保存することもできますが、デバッグに新しい人に説明するのが少し難しくなることを認めなければなりません。 – YowE3K

+0

コードの意味は「無視する」指示です。私はコード 'ignore'命令を見たことはありませんが、ユーザーが 'If'ステートメントをTrueと評価し、falseと評価し、結果としてコードがifブロック内の行を実行しないと考えるケースを見ました(期待されている)。 –

関連する問題