Supongamos que el primer registro está en la fila [2] de la hoja (con títulos en la primera fila) y que la primera fila en blanco se debe insertar entre los dos primeros registros. O sea, por encima de la fila [3]. En ese caso, la macro podría ser algo así:
Sub insertar()
f = 3
Do While Not IsEmpty(Cells(f, “A”))
Cells(f, “A”).EntireRow.Insert
f = f + 2
Loop
End Sub
Lo difícil en este problema es controlar exactamente la posición de las filas por insertar. La macro tiene un ciclo Do While… Loop que continúa mientras haya filas con datos. Controlamos esa condición con la función IsEmpty (“está vacía”). Tras cada inserción, la macro baja dos filas: una para superar la fila en blanco que acaba de insertar y otra para pasar a la siguiente fila de datos.
Por ejemplo, supongamos que la macro está trabajando en la fila [10]. Al insertar una fila en blanco, la macro permanece en esa fila, ahora en blanco, y el dato que estaba en la fila [10] ahora está en la [11]. A continuación, la macro debe insertar una nueva fila en blanco entre las filas [11] y [12]. Para eso debe bajar a la fila [12], dos respecto de la posición anterior.