Sortowanie arkuszy skoroszytu według nazw (makro)

14-lis-2011

Pytanie od znajomej, którą zapytał jej przełożony:

Czy da się posortować akrusze w skoroszycie Excela alfabetycznie?

Ano da się. Makrem. Rozwiązanie pochodzi z tego miejsca: http://www.teachexcel.com/free-excel-macros/m-49,sort-worksheet-tabs.html

Na wszelki wypadek makro sortujące arkusze  umieszczam poniżej:

Sub Sort_Worksheets()
Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult

   iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
     & "Clicking No will sort in Descending Order", _
     vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
   For i = 1 To Sheets.Count
      For j = 1 To Sheets.Count - 1

         If iAnswer = vbYes Then
            If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)
            End If

         ElseIf iAnswer = vbNo Then
            If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)

            End If
         End If

      Next j
   Next i

End Sub
 

Żeby je uruchomić, mając uruchominionego Excela naciśnij Alt+F11. Uruchomi się edytor kodu VBA. Wklej tam w/w instrukcje. Potem zapisz plik i zamknij okno edytora. Jeżeli chcesz uruchomić makro wejdź na kartę Widok, kliknij Makra, wybierz pozycję Sort_Worksheets i kliknij Uruchom. Gotowe.

Komentarze są wyłączone

Autor: Rafał Kraik