the following code should let you change it easily to your current and, possibly, future needs
I assumed, as per your linked example, that "Description" column always has one non blank cell at the beginning of every "Group" or "SKU" rows block
Sub CreateRowForParentItem()
Dim sht As Worksheet
Dim cell As Range
Dim descriptionCol As Long, SKUCol As Long, productCol As Long
'------------------------------
' setting stuff - begin
descriptionCol = 10 '<== adapt it to your actual "Description" column number
SKUCol = 5 '<== adapt it to your actual "SKU" column number
productCol = 6 '<== adapt it to your actual "Product Title" column number
Set sht = ThisWorkbook.Sheets("SheetFruit") '<== change 'data' sheet as per your needs
' setting stuff - end
'------------------------------
'------------------------------
' core code - begin
With sht
Set cell = .Cells(.Rows.Count, descriptionCol).End(xlUp) '<== find last non blank cell in "Description" column
Do While cell.value <> "Description" '<== proceed only if it's not the header cell
cell.EntireRow.Insert
Call CopyAndClearRange(.Cells(cell.row, SKUCol))
Call CopyAndClearRange(.Cells(cell.row, productCol))
Call CopyAndClearRange(.Cells(cell.row, descriptionCol), True)
Set cell = .Cells(cell.row - 1, descriptionCol).End(xlUp) '<== find next non blank cell up
Loop
End With
' core code - end
'------------------------------
End Sub
Sub CopyAndClearRange(rng As Range, Optional okClear As Variant)
If IsMissing(okClear) Then okClear = False
With rng
.Copy .Offset(-1)
If okClear Then .Clear
End With
End Sub