Re-order Excel Sheets based on Sheet names via a macro

半世苍凉 提交于 2019-12-02 13:09:24

If I understand you correctly, you need to sort sheets in alphabetical order:

Sub SortSheets()

    Dim shNames As Collection
    Dim i As Long, j As Long
    Dim temp As String
    Dim sh As Worksheet

    Set shNames = New Collection

    'add sheet names in collection
    For Each sh In ThisWorkbook.Worksheets
        shNames.Add sh.Name, sh.Name
    Next sh

    'bubble sort
    For i = 1 To shNames.Count - 1
        For j = i + 1 To shNames.Count
            If shNames(i) > shNames(j) Then
               temp = shNames(j)
               shNames.Remove j
               shNames.Add temp, temp, i
            End If
        Next j
    Next i

   ' move sheets
   For i = shNames.Count - 1 To 1 Step -1
       Worksheets(shNames(i)).Move Before:=Sheets(1)
   Next i

End Sub
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!