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:
1 |
<code>Sub Sort_Worksheets()</code> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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 |
1 |
Ż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.