I'd suggest one small change to this - as is, sheets starting with
lowercase characters will sort after sheets starting with uppercase
characters. This will sort alphabetically, regardless of case:
Public Sub SortSheets()
Dim oSheet As Variant
Dim i As Long
For Each oSheet In ActiveWorkbook.Sheets
For i = 2 To ActiveWorkbook.Sheets.Count
If UCase(Sheets(i - 1).Name) > UCase(Sheets(i).Name) Then _
Sheets(i - 1).Move After:=Sheets(i)
Next i
Next oSheet
End Sub