Условие
If .Cells(R, Col) <> LastRow Then
странно смешивает значения ячеек и номера строк.
Здесь вы должны просто проверить, находитесь ли вы на последнем минимуме. Тогда вы пока не можете сравнивать его ни с чем, используйте следующее условие, чтобы пропустить этот случай:
If R <> LastRow Then
Для всех остальных строк вы должны сравнить два последовательных значения ячеек
If .Cells(R, Col).Value <> .Cells(R + 1, Col).Value Then
Итак, вот весь код:
Dim Col As Variant
Dim LastRow As Long
Dim R As Long
Dim StartRow As Long
Col = "A"
StartRow = 1
LastRow = Cells(Rows.Count, Col).End(xlUp).Row
With ActiveSheet
Application.ScreenUpdating = False
For R = LastRow To StartRow + 1 Step -1
If R <> LastRow Then
If .Cells(R, Col).Value <> .Cells(R + 1, Col).Value Then
.Cells(R + 1, Col).EntireRow.Insert Shift:=xlDown
End If
End If
Next R
End With
Application.ScreenUpdating = True
End Sub