2017-05-12 8 views
2

Ich versuche, wenn ich sonst ein anderes in einem anderen zu tun. Aber es hat mir den Fehler von Else ohne Wenn gegeben. Ich habe eine wenn, aber wie kommt es, dass VBA es nicht sieht?wenn sonst, wenn sonst Fehler

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

Wo sind die 'Next' für jede' For Each'? – Enigmativity

Antwort

3

Sie verpassen die Next für die For, die die IF und die For Blöcke verschachtelt macht.

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

Sie müssen schließen 'For Each' Blöcke mit 'Next RNG', das heißt:

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

Dies ist ein Syntaxfehler für Ihren for each Aussagen

Hier ist die Syntax für For Each Schleife in 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