Пам би искала да подреди разделите на работния си лист по азбучен ред. Това не е команда в Excel, но използвайки кратък макрос, можете да го добавите към лентата си с инструменти за бърз достъп.
Гледам видео
- Пам иска да сортира разделите на работния лист по азбучен ред
- Ще използвате макрос в личната работна книга за макроси
- Alt + T + M + S и променете защитата на макроса, за да разрешите макроси
- Запишете макрос Hello World в личната работна книга на макросите
- Въведете нов код в Personal Macro Workbook
- Присвойте този код на бутон QAT
Видео транскрипция
Научете Excel от подкаст, епизод 2084: Сортирайте разделите на работния лист по азбучен ред
Хей, добре дошъл в мрежата, аз съм Бил Джелен. Днешният въпрос от Пам: Има ли начин за разделяне на азбуките на работния лист? Е, няма вграден начин за това, но бихме могли да го направим с макрос. И сега, това е макрос, който наистина трябва да е в личната работна книга за макро, нали? Така че, ако никога преди не сте правили макроси, ще направим Alt + T за Том и за Мери, S за Сам. И се уверете, че преминавате от Disable all macros без известие към Disable macros with уведомление.
Тогава добре, натиснете Alt + F8 и погледнете и вижте дали имате макроси, не забравяйте да изберете Макроси в: Всички отворени работни книги. Ако нямате нищо, което да започва като PERSONAL.XLSB, трябва да направите тези незадължителни стъпки. Ако вече имате нещо с PERSONAL.XLSB, тогава задръжте за секунда, нали?
И така, ще отидем в раздела Изглед и ще запишем нов макрос. Ще се казва HelloWorld. Няма пространство, няма пространство. И ще съхраним макроса в личната работна книга на Macro, щракнете върху OK. И просто напишете някъде Hello World, така, и след това слезте тук до Ready и щракнете Stop. Добре, сега това ще ви принуди да имате персонална работна книга за макроси. Добре, ако никога досега не сте използвали макроси, може да нямате това.
На този етап ще натиснем Alt + F11 и ако никога не сте използвали макроси, ще получите този сив екран тук. Ще отидем на View, Project Explorer и ще намерим новия PERSONAL.XLSB. Ако вече имате модул, който, разбира се, ще отворите модули и щракнете двукратно върху Модул 1. Сега вече имам няколко макроса в личната си макро книга, но ще дойда тук, за да последния ред, поставете няколко интервала.
Добре, тогава ще напишете този код, който аз поставих. И ще говорим за този макрос, докато го стартирам. И така, ще го пусна един по ред, като натисна клавиша F8. И едно нещо, което научих тук, е след като завърших сортирането, беше малко смущаващо да се озова на друг лист, така че помня на какъв лист сме, така че по-късно мога да го избера точно преди макроса да е Свършен.
Добре сега, ето ни. Да се върнем към Excel и ще видите, че първият лист там се нарича Заглавие. В момента сме на лист, наречен Въпрос. Искам да добавя нов лист преди заглавието, затова правим работни листове. Добавете и след това искам да го преименувам. В момента се предлага в Sheet1 като TempSortSheet. Внимавайте, това трябва да е име, което никога не бихте използвали. Като не наричайте този отчет за доходите, нали? Просто използвайте нещо много произволно, така че когато ние - ще срещнете грешка, ако вече имате лист, наречен TempSortSheet. И тогава това, което открих е, че използвах този Worksheet.Count отново и отново и отново, така че просто ще го поставя в променлива, тъй като по-лесно е да се каже WSC, отколкото Worksheets.Count по-късно. Така че имаме 150 работни листа и имаме списък с тези работни листове.
Добре, значи сте за първи път през цикъла, където преминавам от 1 до 250. За първи път през цикъла към нашия чисто нов лист, който добавихме, TempSortSheet, в ред 1, колона 1, отиваме да поставите Стойност, която = = на първия работен лист. Добре, и това, което трябва да бъде, е добре, да, TempSortSheet точно там. Но ще оставя това да работи още няколко пъти. Ще натисна F8 и ще видите, че получаваме всички раздели на листа в реда, в който се появяват в работната книга, и предполагам, че започвам да получавам тези раздели, които имат номерата на сметките, добре. И ще оставя това да работи, не искам да натискам F8 300 пъти. И така, щраквам тук и отивам на Debug, Run To Cursor, което е Ctrl + F8, което ще завърши това. И вижте, че имаме списък с всички раздели на 150 листа.Това е страхотно.
И ето тук се възползваме от силата на Excel. Има много публикации онлайн, включително на таблото за съобщения, където всъщност се опитват и сортират. Те пишат свое собствено сортиране, за да преместват листовете и ние ще се възползваме от Excel тук, защото Excel има сортиране и аз използвам кода от Excel 2003. Харесва ми този код, по-лесен за запомняне. Ще започна в A1, Преоразмерете го, за да бъде 150 клетки, където Сортирам това. Ключът ще бъде А1. Е, това е единственото нещо, което би могло да бъде. Поръчката ще бъде възходяща и не забравяйте да посочите, че има заглавка, нали? Не искаме TempSortSheet да сортира данните. Добре, точно там. БАМ! Това прави сортирането и не е нужно да пишем около балонния код за сортиране. И тогава ще преминем от ред 2, който е A120,листът за преместване е A120. Защо " " ? Ааа, в случай че имате име на лист, както го имахме по-рано тази седмица, като лист с име 123, който би объркал Excel. И тогава, къде ще го преместим? Ще преминем към не Ред 2, а след първия лист. Така MoveAfter става 1. И така, ще вземем нашия лист, наречен A120, и ще го преместим след първия лист така, F8, и там е работил. Изпълнете тези три реда още веднъж. A124 идва на правилното място.ще вземем нашия лист, наречен A120, и ще го преместим след първия лист така, F8, и там той работи. Изпълнете тези три реда още веднъж. A124 идва на правилното място.ще вземем нашия лист, наречен A120, и ще го преместим след първия лист така, F8, и там той работи. Изпълнете тези три реда още веднъж. A124 идва на правилното място.
В този момент вече знаем, че работи, можем да направим Ctrl + F8, който прави всички движещи се - 150 хода току-що се случиха там. И сега ще изтрия оригиналния лист, който е изтритият ни TempSortSheet. Но преди да го изтрия, не искам да казват на този, който изпълнява кода, че сме на път да изтрием листа. И така, просто го изтривам и след това избирам оригиналния лист и показвам съобщение, че работните книги са сортирани така.
Добре, така че сега, когато разполагаме с макроса, знаем, че макросът работи и е в личната работна книга на макроса, няколко неща, които искаме да направим: Alt + F11 се върнете тук и се уверете, че сте в личния макрос работна книга, щракнете там и щракнете върху Запиши. Ако не го запазите сега, по-късно, когато затваряте Excel, ще мига това съобщение за „Искате ли да запазите промените в PERSONAL.XLSB?“ и напълно ще забравите и няма да запазите промените, нали? Така че винаги се уверявам, че запазвам промените и след това Alt + Tab, където персонализирам лентата с инструменти за бърз достъп, избирам от макроси, намирам този, наречен SortSheets, добавям го в лентата с инструменти за бърз достъп. Не ми харесва блок-схемата, така че ще търсим нещо, което казва от А до Я или вие знаете, така че некаs използвайте този и поставете малък раздел там на Сортирай листове като този, щракнете върху OK, щракнете върху OK.
Добре, сега ето теста. Ще вмъкна нова работна книга. Ще направя няколко копия на листовете и ще ги поставим в някаква странна последователност, Z и след това Y и след това M и след това B, така. Щракнете върху Сортиране на листове и BAM! Върнаха се тук в правилната последователност. Колко готино е това.
Добре, така че днешният епизод, Пам иска да сортира разделите на работния лист по азбучен ред. Еха! Използвахме макроса. Първо променете защитата на макроса и запишете макроса Hello World в личната работна книга на макросите и след това въведете кода в Personal Macro Workbook и го присвойте на бутон на лентата с инструменти за бърз достъп.
Искам да благодаря на Пам за този въпрос. Искам да ви благодаря, че се отбихте. Ще се видим следващия път за поредното излъчване от.
Свали файл
Изтеглете примерния файл тук: Podcast2084.xlsm