For-Each-Schleife funktioniert nicht.

Bild

Betrifft: For-Each-Schleife funktioniert nicht.
von: moohdan
Geschrieben am: 27.10.2015 13:37:35

Hallo Leute,
ich möchte die For-Each -Schleife in der unteren Form benutzen. Es funktioniert leider nicht. Könnte mir jemand sagen, woran es liegen kann.
Hier der Code:


Sub For_Each()
'For_Each Makro
        Dim VList As String
        VList = [+0MA+K4H, +7IH+K4H, +7IH+K5A, +7IG+K4H, +1TR+K5A, +1TU+K5A]
        Dim V As Variant
        
        For p = 2 To 7
            
            Cells(p + 2, 19).Value = p * 100
                
            For Each V In VList
        
                Cells(p + 2, 23).Value = V
                
            Next
        
        Next
End Sub

Mit freundlichen Grüßen
moohdan

Bild

Betrifft: AW: For-Each-Schleife funktioniert nicht.
von: Rudi Maintaire
Geschrieben am: 27.10.2015 13:41:51
Hallo,
woran es liegen kann.
am Code.
was soll das:
VList = [+0MA+K4H, +7IH+K4H, +7IH+K5A, +7IG+K4H, +1TR+K5A, +1TU+K5A]
???
Meinst du
VList = Array("0MA+K4H", "7IH+K4H","7IH+K5A", "7IG+K4H","1TR+K5A", "1TU+K5A")
Gruß
Rudi

Bild

Betrifft: AW: For-Each-Schleife funktioniert nicht.
von: Daniel
Geschrieben am: 27.10.2015 13:42:38
Hi
die übliche Schreibweise wäre (hier nur die korrigierten Zeilen):

dim  VList as Variant
VList = Array("+0MA+K4H", "+7IH+K4H", "+7IH+K5A", "+7IG+K4H", "+1TR+K5A", "+1TU+K5A")

Diese Schleife ist Unsinn:
            For Each V In VList
        
                Cells(p + 2, 23).Value = V
                
            Next

da du innerhalb der Schleife die Zelle nicht veränderst, überschreibst du immer die gleiche Zelle mit dem neuen Wert V.
am Schluss steht dann der letze Wert aus dem Array in der Zelle und du könntest anstatt der Schleife genausogut schreiben:
Cells(p + 2, 23) = VList(Ubound(VList))
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Powerpoint Druckfenster aus Excel heraus öffnen"