For Next Schleife soll bei der Ausgabe die Zeile nicht überspringen?

2 Antworten

For i=1 To 10 Step 2
  ActiveCell.Value = i
  Set ActiveCell = ActiveCell.Offset(1,0)
Next

(ungetestet)

Es gibt aber noch andere Möglichkeiten. Zum Beispiel könntest du die aktive Zelle fix halten und den Offset als 1+(i-1)/2 berechnen.

Oder du zählst in Einerschritten und gibst immer Schritt*2-1 aus.

Oder du lässt eine weitere Zählvariable j mit laufen, die in jedem Durchlauf nur um 1 erhöht wird.


Oubyi, UserMod Light  06.12.2016, 13:14

SO klappt es nicht, da das verschieben der ActiveCell nicht hinhaut.
Mit direktem Offset und der von Dir beschriebenen Berechnung würde in der Zelle UNTER der Aktiven Zelle mit dem Eintrag begonnen.
SO wird IN der aktiven Zelle mit dem Eintrag begonnen:

For i = 1 To 10 Step 2
ActiveCell.Offset((i - 1) / 2, 0).Value = i
Next
2
Dim i As Integer

For i = 1 To 5
Range("A" & i) = 2 * i - 1
Next i