Pam chciałaby alfabetycznie ułożyć karty arkusza. To nie jest polecenie w programie Excel, ale za pomocą krótkiego makra możesz dodać je do paska narzędzi szybkiego dostępu.
Obejrzyj wideo
- Pam chce posortować karty arkusza w kolejności alfabetycznej
- Zamierzam użyć makra w osobistym skoroszycie makr
- Alt + T + M + S i zmień zabezpieczenia makr, aby zezwolić na makra
- Zapisz makro Hello World w osobistym skoroszycie makr
- Wpisz nowy kod do skoroszytu makr osobistych
- Przypisz ten kod do przycisku QAT
Transkrypcja wideo
Naucz się programu Excel z podcastu, odcinek 2084: Sortuj karty arkusza alfabetycznie
Hej, witaj z powrotem w netcastie, jestem Bill Jelen. Dzisiejsze pytanie od Pam: Czy istnieje sposób na alfabetyczne ułożenie zakładek arkusza? Cóż, nie ma wbudowanego sposobu, aby to zrobić, ale moglibyśmy to zrobić za pomocą makra. A teraz to jest makro, które naprawdę powinno znajdować się w osobistym skoroszycie makr, dobrze? Tak więc, jeśli nigdy wcześniej nie robiłeś makr, zrobimy Alt + T dla Toma i dla Mary, S dla Sama. I upewnij się, że przechodzisz od Wyłącz wszystkie makra bez powiadomienia do Wyłącz makra z powiadomieniem.
W porządku, naciśnij Alt + F8 i spójrz i zobacz, czy masz jakieś makra, upewnij się, że wybrałeś Makra w: Wszystkie otwarte skoroszyty. Jeśli nie masz niczego, co zaczyna się jako PERSONAL.XLSB, musisz wykonać te opcjonalne kroki. Jeśli masz już coś z PERSONAL.XLSB, po prostu poczekaj chwilę, dobrze?
Więc przejdziemy do zakładki Widok i zamierzamy zarejestrować nowe makro. Będzie się nazywać HelloWorld. Żadnej przestrzeni, żadnej przestrzeni. Zamierzamy przechowywać makro w skoroszycie makr osobistych, kliknij OK. I po prostu wpisz gdzieś Hello World, w ten sposób, a następnie zejdź tutaj obok Ready i kliknij Stop. W porządku, teraz to zmusi cię do posiadania osobistego skoroszytu makr. W porządku, jeśli nigdy wcześniej nie korzystałeś z makr, możesz tego nie mieć.
W tym momencie naciśniemy Alt + F11 i jeśli nigdy nie używałeś makr, otrzymasz tutaj ten szary ekran. Przejdziemy do View, Project Explorer i znajdziemy nowy PERSONAL.XLSB. Jeśli masz już moduł, który oczywiście tak, otwórz moduły i kliknij dwukrotnie Moduł 1. Teraz mam już kilka makr w moim osobistym skoroszycie makr, ale zamierzam przejść tutaj, aby ostatni wiersz wstaw kilka spacji.
W porządku, więc wpiszesz ten kod, który wkleiłem. I będziemy rozmawiać o tym makrze, gdy je uruchomię. Więc mam zamiar uruchamiać go po jednym wierszu na raz, naciskając klawisz F8. Jedna rzecz, której się tutaj nauczyłem, to to, że po zakończeniu sortowania było trochę niepokojące, że skończyło się na innym arkuszu, więc pamiętam, na którym arkuszu jesteśmy, więc później mogę go wybrać tuż przed pojawieniem się makra Gotowe.
OK, oto jesteśmy. Wróćmy do programu Excel, a zobaczysz, że pierwszy arkusz nosi nazwę Tytuł. Jesteśmy obecnie na arkuszu o nazwie Pytanie. Chcę dodać nowy arkusz przed tytułem, więc robimy Arkusze, dodaj, a potem chcę zmienić jego nazwę. Obecnie występuje w Sheet1 jako TempSortSheet. Uważaj, powinno to być imię, którego nigdy byś nie użył. Nie nazywaj tego zestawienia dochodów, dobrze? Po prostu użyj czegoś bardzo losowego, więc kiedy napotkasz błąd, jeśli masz już arkusz o nazwie TempSortSheet. A potem odkryłem, że używam tego arkusza kalkulacyjnego, licząc w kółko, więc po prostu wstawię go do zmiennej, która jest łatwiejsza do określenia WSC niż Arkusze robocze. Licz później. Mamy więc 150 arkuszy roboczych i mamy listę tych arkuszy.
W porządku, więc po raz pierwszy przechodzisz przez pętlę, w której przechodzę od 1 do 250. Za pierwszym razem w pętli do naszego nowego arkusza, który dodaliśmy, TempSortSheet, w wierszu 1, kolumnie 1, idziemy aby umieścić wartość, która jest = w pierwszym arkuszu. W porządku, a to powinno być dobrze, tak, TempSortSheet właśnie tam. Ale pozwolę temu działać jeszcze kilka razy. Nacisnę F8, a zobaczysz, że otrzymujemy wszystkie karty arkuszy w kolejności, w jakiej pojawiają się w skoroszycie, i zakładam, że zacznę otrzymywać te karty, które mają numery kont, w porządku. I pozwolę temu działać, nie chcę naciskać F8 300 razy. Więc mam zamiar kliknąć tutaj i przejść do Debug, Run To Cursor, czyli Ctrl + F8, co zakończy to. Mamy listę wszystkich 150 kart arkuszy.To cudownie.
A teraz możemy skorzystać z możliwości programu Excel. Jest wiele postów online, w tym na forum dyskusyjnym, gdzie faktycznie próbują je sortować. Piszą własne sortowanie, aby przesuwać arkusze, a my skorzystamy tutaj z Excela, ponieważ Excel ma sortowanie i używam kodu z Excela 2003. Podoba mi się ten kod, łatwiejszy do zapamiętania. Zacznę od A1, Zmień rozmiar na 150 komórek, gdzie to sortuję. Kluczem będzie A1. Cóż, to jedyna rzecz, jaka może być. Porządek będzie rosnący i upewnij się, że podano nagłówek, dobrze? Nie chcemy, aby nasz TempSortSheet sortował dane. W porządku, więc właśnie tam. BAM! To robi sortowanie i nie musimy pisać wokół kodu sortowania bąbelkowego. Następnie przejdziemy od wiersza 2, czyli A120,arkusz do przeniesienia to A120. Dlaczego " " ? Ach, na wypadek, gdybyś miał nazwę arkusza, taką jaką mieliśmy na początku tego tygodnia, jak arkusz o nazwie 123, który zmyliłby program Excel. A potem, dokąd to przeniesiemy? Zamierzamy przejść nie do rzędu 2, ale po pierwszym arkuszu. Więc MoveAfter staje się 1. Więc weźmiemy nasz arkusz o nazwie A120 i przeniesiemy go po pierwszym arkuszu w ten sposób, F8, i tak to zadziałało. Uruchom te trzy linie jeszcze raz. A124 trafia we właściwe miejsce.zamierzamy wziąć nasz arkusz o nazwie A120 i przesunąć go za pierwszym arkuszem w ten sposób, F8, i tam zadziałało. Uruchom te trzy linie jeszcze raz. A124 trafia we właściwe miejsce.zamierzamy wziąć nasz arkusz o nazwie A120 i przesunąć go za pierwszym arkuszem w ten sposób, F8, i tam zadziałało. Uruchom te trzy linie jeszcze raz. A124 trafia we właściwe miejsce.
At this point, now we know it's working, we can do Ctrl+F8 which does all of the moving - 150 moves just happened there. And now, I'm going to delete the original sheet that is our deleted TempSortSheet. But before I delete it, I don't want them to tell whoever's running the code that we're about to delete the sheet. So, I just delete it and then select the original sheet and display message that the workbooks have been sorted like that.
Okay, so now that we have the macro, we know the macro is working and it's in the personal macro workbook, a couple of things we want to do: Alt+F11 come back here and make sure that you're in the personal macro workbook, click there and click Save. If you don't save it now, later on when you're closing Excel it's going to flash up this message about ‘Do you want to save changes to PERSONAL.XLSB?’ and you'll completely forget and not save the changes, right? So I always make sure to save the changes and then Alt+Tab where I Customize the Quick Access Toolbar, choose from Macros, find the one that's called SortSheets, add that to the Quick Access Toolbar. I don't like the flowchart so we'll look for something that says A to Z or you know, so let's use this one and put a little tab there of Sort Sheets like that, click OK, click OK.
W porządku, oto test. Wstawię nowy skoroszyt. Zrobię kilka kopii arkuszy i umieścimy je w dziwnej kolejności, Z, potem Y, potem M, a potem B, o tak. Kliknij Sortuj arkusze i BAM! Wracają tutaj we właściwej kolejności. Jakie to jest świetne.
W porządku, więc w dzisiejszym odcinku Pam chce posortować karty arkusza w kolejności alfabetycznej. Łał! Użyliśmy makra. Najpierw zmień zabezpieczenia makr i zapisz makro Hello World w osobistym skoroszycie makr, a następnie wpisz kod w skoroszycie makr osobistych i przypisz go do przycisku paska narzędzi szybkiego dostępu.
Chcę podziękować Pam za to pytanie. Chcę ci podziękować za zatrzymanie się. Do zobaczenia następnym razem z kolejnym netcastem od.
Pobieranie pliku
Pobierz przykładowy plik tutaj: Podcast2084.xlsm