Я применил следующий код к таблице, которая требует удаления всего, кроме первой строки, для вставки в нее новых данных.

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  

После очистки последней ячейки в диапазоне от ее содержимого активная ячейка становится первой ячейкой в первой строке, и код продолжается до бесконечности между двумя последними строками кода. Как остановить запуск кода после очистки всех ячеек в диапазоне (если он не содержит формулу).

0