schnellere Variante ohne Schleife
23.07.2020 12:31:00
Klaus
Hi Ewald,
und hier nochmal eine schnelle, schleifenlose Variante. Nutzt dafür eine Hilfsspalte. Ist vielleicht für den VBA-Anfänger nicht so intuitiv nachzuvollziehen wie eine Schleife, aber dafür schön fix :-)
Statt in 2-er Schritten durchzugehen, generiert der Code erstmal alle zwei Zeilen einen #DIV0! Fehler in einer Hilfsspalte, das geht in einem Rutsch. Dann werden alle fehlerhaften Zellen ausgewählt, und davon die ganze Zeile: jetzt hat das Script jede gerade Zeile in der Hand. In diesen ausgewählten Bereich findet schließlich der Paste-Befehl statt, der dievorher kopierte Formelzeile einfügt.
LG,
Klaus
Sub Test()
'zeile 4 kopieren, bis Zeile 10000
Const fRow As Long = 4
Const lRow As Long = 10000
'unbenutzte Spalte - im Beispiel Spalte 26, also Z.
Const FreeCol As Long = 8
Dim z As Long
With ActiveSheet
.Range(.Cells(fRow + 2, FreeCol), .Cells(lRow, FreeCol)).FormulaR1C1 = "=1/MOD(ROW(),2)"
.Rows(fRow).Copy
.Columns(FreeCol).SpecialCells(xlCellTypeFormulas, 16).EntireRow.PasteSpecial
.Columns(FreeCol).ClearContents
End With
End Sub