Sub Copy_data_To_Named_Sheets()
Dim wSheetStart As Worksheet
Dim strText As String
Dim rngSource As Range, rngUnique As Range
Dim rngSourceLess As Range
Set wSheetStart = ActiveSheet
wSheetStart.AutoFilterMode = False
Set rngSource = Range("G1", Range("G" & Rows.Count).End(xlUp))
Set rngSourceLess = Range("G2", Range("G" & Rows.Count).End(xlUp))
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("UniqueList").Delete
Worksheets.Add().Name = "UniqueList"
With Worksheets("UniqueList")
rngSource.AdvancedFilter xlFilterCopy, rngSource, .Range("G1"), True
Set rngUnique = .Range("G2", .Range("G" & .Rows.Count).End(xlUp))
End With
On Error GoTo 0
For Each cell In rngUnique
With wSheetStart
rngSource.AutoFilter Field:=1, Criteria1:=cell.Value
rngSourceLess.SpecialCells(xlCellTypeVisible).EntireRow.Copy _
Destination:=Worksheets(cell.Value).Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
If cell.Value = "" Then Exit For
.AutoFilterMode = False
End With
Next cell
wSheetStart.AutoFilterMode = False
Sheets("UniqueList").Delete
Application.DisplayAlerts = True
End Sub