try:
Sub blah()
On Error GoTo here
Application.ScreenUpdating = False
With Sheets("Sheet1")
lr = .Cells(.Rows.Count, "F").End(xlUp).Row
Dim myFilters As New Collection
.Range("F2:F" & lr).TextToColumns Destination:=.Range("I2"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar:="-", FieldInfo:=Array(Array(1, 1), Array(2, 9))
On Error Resume Next
For Each cll In .Range("I2:I" & lr).Cells
myFilters.Add cll.Value, CStr(cll.Value)
Next cll
On Error GoTo here
.AutoFilterMode = False
With .Range("A1:I" & lr)
.AutoFilter
For Each filtr In myFilters
.AutoFilter Field:=9, Criteria1:=filtr
.Resize(, 8).Copy
With Sheets.Add(After:=Sheets(Sheets.Count))
.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
.Range("K1").FormulaR1C1 = "=SUM(R[1]C[-3]:R[" & .UsedRange.Rows.Count - 1 & "]C[-3])"
.Range("J1").Value = "PO Total --->"
.Columns("A:K").EntireColumn.AutoFit
.Cells(1).Select
.Name = "Prefix " & filtr
End With
Next filtr
Application.CutCopyMode = False
End With
.AutoFilterMode = False
.Range("I2:I" & lr).ClearContents
.Activate
.Range("A1").Select
End With
here:
Application.ScreenUpdating = True
End Sub