Wir müssen über vorsichtig sein, wo ich anfangen soll, wie und zu stoppen, wo zu treten. OP-Bedarf ist in der Frage nicht vollständig definiert. Meine Wette ist, dass OP n Datenzeilen, 1 leere Zeile, n Datenzeilen usw.
hier ein Unter will, dies zu tun:
Public Sub SplitDataRowsInIslandsOf(ByVal plNumRowsPerIsland As Long, ByVal prngFirstDataCell As Excel.Range)
Dim lastRow As Long
Dim insertRow As Long
With prngFirstDataCell.Worksheet
lastRow = .Cells(.Rows.Count, prngFirstDataCell.Column).End(xlUp).Row
End With
'In calculating the loop's upper bound, account for the rows that will be inserted,
'and avoid operating past the last data row.
lastRow = lastRow + ((lastRow - prngFirstDataCell.Row + 1) \ plNumRowsPerIsland) - 1
For insertRow = (prngFirstDataCell.Row + plNumRowsPerIsland) To lastRow Step (plNumRowsPerIsland + 1)
prngFirstDataCell.Worksheet.Cells(insertRow, 1).EntireRow.Insert
Next
End Sub
Für Inseln 1'200 Reihen, wenn die erste Zelle in einer Spalte Daten (reallly, jede Spalte, die verwendet werden können, die letzte Datenreihe zu erkennen), die H2
auf dem aktiven Arbeitsblatt ist, würde man nennen:
SplitDataRowsInIslandsOf 1200, ActiveSheet.Range("H2")
natürlich sollten wir nicht aktiv werden (xyz), aber das ist eine andere Geschichte.
Wenn Sie Ihre Frage bearbeiten, um den Code einzubeziehen, der nicht funktioniert, können wir das Problem möglicherweise erkennen. – YowE3K
meinst du ** eine Zeile einfügen **? Auch nicht sicher, warum Sie "Step 1259" statt Step 1200 verwenden? – Slai