Here's a short version:
Sub AddSheets()
Dim X, FirstSheet, CurSheet, newSheetName
FirstSheet = ActiveSheet.Name
For X = 1 To 30
If (Sheets(FirstSheet).Cells(X, 1) <> "") Then
Sheets.Add
Sheets(ActiveSheet.Name).Name = Sheets(FirstSheet).Cells(X, 1)
Sheets(Sheets(FirstSheet).Cells(X, 1).Value).Move
after:=Sheets(Sheets.Count)
End If
Next X
End Sub