Я применил следующий код к таблице, которая требует удаления всего, кроме первой строки, для вставки в нее новых данных.
Sub KeepFormulas()
Dim sRow, lCol As Integer
sRow = ActiveCell.Row
lCol = Cells(sRow, Columns.Count).End(xlToRight).Column
For Each cell In Range(Cells(sRow, 1), Cells(sRow, lCol))
If cell.HasFormula = False Then cell.ClearContents
Next cell
End Sub
После очистки последней ячейки в диапазоне от ее содержимого активная ячейка становится первой ячейкой в первой строке, и код продолжается до бесконечности между двумя последними строками кода. Как остановить запуск кода после очистки всех ячеек в диапазоне (если он не содержит формулу).