|
▼。・゚・(ノД`)・゚・。 さん:
インデントをつけて見やすいコードを書きましょう。
> Dim i
でなく、型宣言を付けましょう
Dim i As Long
すると流れが見えてきます。
Sub 正方形長方形9_Click()
Dim i As Long
For i = 17 To 66
If Range("L2").Value = Range("B" & i).Value Then
Range("E" & i).Value = Range("E" & i).Value - Range("D" & i).Value * Range("M2").Value
Range("C9").Value = Range("C9").Value + Range("D" & i).Value * Range("M2").Value
Range("C" & i).Value = Range("c" & i).Value - Range("M2").Value
Range("G13").FormulaR1C1 = "=SUM(R[-6]C:R[-1]C)"
Range("k2:m2").ClearContents
Range("N2").Formula = "=rounddown(P2,0)"
ElseIf Range("L6").Value = Range("b67").Value Then
Range("G12").Value = Range("g12").Value - Range("o2").Value
Range("C69").Value = Range("c69").Value - Range("m2").Value
Range("k2:m2").ClearContents
Range("N2").Formula = "=rounddown(P2,0)"
Else
MsgBox "商品はありません"
Exit For
End If
Next
一番最初 i は 17 でループを始めます。
i = 17 のとき、
> If Range("L2").Value = Range("B" & i).Value Then
は
If Range("L2").Value = Range("B17").Value Then
の比較をします。[L2]に等しい値は [B30]にしかないのですから、
[L2]の値と [B17]の値は等しくなく、
> ElseIf Range("L6").Value = Range("b67").Value Then
にジャンプしますが、ここも等しくないので、
> Else
に飛びます。
そこで
> MsgBox "商品はありません"
とメッセージを出し、
> Exit For
してしまっている(Loopを抜けている)
ので、
> L2とB30に全く同じ数値が入っているのですが、
> 最後のELSEに飛んで”商品はありません”と出てしまいます。
は、コードに書いてある通りのことが起きているわけです。
|
|