If you are on office 365 then perhaps:
Sub test()
Dim unq As Variant
Dim tbl As Object, x As Long
Dim lc As ListColumn
Dim wbTmp As Workbook, wsTmp As Worksheet
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
Set tbl = Sheet1.ListObjects(1)
Set lc = tbl.ListColumns("CostCenter")
With tbl
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=lc.DataBodyRange, Order:=xlAscending
.Sort.Apply
End With
unq = Application.Unique(lc.DataBodyRange, False, False)
For x = 1 To UBound(unq)
tbl.Range.AutoFilter lc.Index, unq(x, 1)
Set wbTmp = Workbooks.Add
Set wsTmp = wbTmp.Sheets(1)
tbl.Range.SpecialCells(xlVisible).Copy
With wsTmp
.Range("A1").PasteSpecial xlPasteValues
.Range("A1").PasteSpecial xlPasteFormats
.Cells.EntireColumn.AutoFit
End With
Application.CutCopyMode = False
With wbTmp
.SaveAs "C:\WIP\GLAD\" & unq(x, 1) & Format(Date, "MMMYYYY"), 51
.Close False
End With
Next x
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub