Re: "Thanks but this code does not concatenate the values in the form "2 units of ASDF / 5 units of UIOP""
I hope not because it is not meant to do that.
Maybe this is more to your liking.
Make sure to change the Cell reference of A30 to the cell where you want the result.
Sub wongsh_version2()
Dim c As Range, ship As String
For Each c In Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)
If c.Value <> 0 Then
ship = ship & c.Value & " units of " & c.Offset(, -1).Value & " / "
End If
Next c
Range("A30").Value = Left(ship, Len(ship) - 3) '<---- Change cell reference
End Sub