2014-01-15 2 views
-1

이름이 오름차순으로 정렬되어있는 Excel 시트에 6 개의 시트가있는 경우 : O1, O2, O3, O1_ # 2, O2 # 2, O3 # 3매크로를 통해 시트 이름을 기반으로 Excel 시트 재주문

매크로를 작성하여 이러한 시트의 순서를 변경할 수 있습니까? 난 당신이 알파벳에서 시트를 정렬 할 필요 제대로 이해하면 2, O2, O2 # 2, O3, O3 # 2

감사

+1

예를 확인하고 직접 매크로를 만들려고 시도하십시오. 어떤 문제가 발생 했습니까? – pnuts

답변

1

O1, O1 번호 : 이것은 내가 찾고 있어요 순서입니다 주문 :

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