2017-05-12 15 views
2

私はelse if elseをしようとしています。しかし、それは私にIf Without Elseのエラーを与えています。私はそこにいるが、どのようにVBAはそれを見ていない来るか?もしelse if else else error

a = Sheet1.ComboBox1.value 
If unit <> a Then 
    If a = "mils" Then 
    Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown)) 
    For Each rng In cx 
    rng.value = rng.value * y 
    Else 
    Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown)) 
    For Each rng In cx 
    rng.value = rng.value/y 
    End If 
End If 
+0

それぞれのFor Eachの「Next」はどこですか? – Enigmativity

答えて

3

あなたはインターリーブIFForブロックを作るForためNextを、逃しています。あなたが「次へRNG」とのブロック、すなわち「それぞれのために」閉じる必要が

a = Sheet1.ComboBox1.value 
If unit <> a Then 
    If a = "mils" Then 
    Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value * y 
    Next ' <------------------------------ Missing 
    Else 
    Set cx = Sheet9.range("E2", Sheet9.range("E2").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value/y 
    Next ' <------------------------------- Missing 
    End If 
End If 
0

a = Sheet1.ComboBox1.Value 
If unit <> a Then 
    If a = "mils" Then 
    Set cx = Sheet9.Range("E2", Sheet9.Range("E2").End(xlDown)) 
    For Each Rng In cx 
     Rng.Value = Rng.Value * y 
    Next Rng 
    Else 
    Set cx = Sheet9.Range("E2", Sheet9.Range("E2").End(xlDown)) 
    For Each Rng In cx 
     Rng.Value = Rng.Value/y 
    Next Rng 
    End If 
End If 
0

これここにあなたのfor each

の構文エラーがFor Eachの構文ですVBAのループ:

For Each element In Group 
    [statement 1] 
    [statement 2] 
    .... 
    [statement n] 
    [Exit For] 
    [statement 11] 
    [statement 22] 
Next //you are missing this line in your coding