Я не эксперт по VBA, но, похоже, ваш код будет вставлять строку каждый раз, когда он находит "продать", поэтому вставляется несколько строк.
Попробуйте добавить разрыв после вставки строки, чтобы вывести вас из цикла for.
надеюсь, это поможет.
AH Примечание, в VBA Exit For
используется для выхода из цикла
поэтому ваш код будет
Set sh1 = Worksheets("Sheet1")
lastrow1 = sh1.Cells.SpecialCells(xlCellTypeLastCell).Row
For i = 1 To lastrow1
If sh1.Cells(i, "A").Value = "sell" Then
sh1.Cells(i, "A").EntireRow.Insert
Exit For
End If
Next i
End Sub