VBA lernen - Excel 2007/2010 (4)
Zusammenfassung: Was bisher geschah: Einfache Iteration (Schleife, Zyklus)
Einfache Iteration (Schleife, Zyklus)
Auf dieser Seite
Mit Bild
Beim Erzeugen einer Reihe aus z.B. 20 Zahlen muss das Bildungsgesetz 20mal hintereinander ausgeführt werden. So eine Lösung müssen Sie nun nicht 20mal hintereinander schreiben. Das hat nun gar nichts mit Programmieren zu tun, denn das wäre total ineffektiv. Die Prozedur benötigte den 20fachen Speicherplatz pro Berechnung und ist total starr. Was ist, wenn demnächst 100mal gerechnet werden muss? So ein Problem lösen Sie mit einer Schleife. Im Beispiel des zweiten Kursteils wurde dieser Block bereits vorgestellt.
Mit Bild
Ganz = Eingabewert Worksheets("Tabelle1"). _ Range("E3").Value = Ganz For I = 1 To 20 ' Anfangsklausel Worksheets("Tabelle1"). _ Cells(4 + I, 4).Value = Ganz Worksheets("Tabelle1").Cells(4 + I, 6). _ Value = I * Ganz Next
Mit Bild
Einfache Iteration
Mit Bild
In der Anfangsklausel (auch For-Klausel genannt) wird eine Zählvariable angegeben und mit einem Startwert versehen. Genauso muss ein Endwert angegeben werden. Die notwendige Schrittweite kann standardmäßig bei 1 weggelassen werden. Nach jedem Durchlauf des Anweisungsblockes 1 wird die Zählvariable um die Schrittweite erhöht (bzw. bei negativer Schrittweite vermindert) und mit dem Endwert verglichen. Ist der Endwert überschritten, wird die Schleife verlassen.
Mit Bild
Schleifen können auch geschachtelt werden, wie Sie im folgenden Beispiel im Modul Zyklen Prozedur auswertung sehen.
Mit Bild
' Mit Spalte B beginnen For Spalte = 2 To 7 'Die ausgewählte Spalte wird 'beginnend mit Zeile 4 ausgewertet For Zeile = 4 To 12 If Worksheets("Tabelle1"). _ Cells(Zeile, Spalte) <> 0 Then Aktuell = Worksheets("Tabelle1"). _ Cells(Zeile, Spalte) / _ Worksheets("Tabelle1"). _ Cells(3, Spalte) ' Preis pro Einheit If Ergebnis >= Aktuell Then Ergebnis = Aktuell ErgZeile = Zeile ErgSpalte = Spalte End If End If Next Zeile Next Spalte