Съдържание
В урока е показано как можете бързо да сортирате работните листове на Excel по азбучен ред с помощта на код VBA и инструмента Workbook Manager.
Microsoft Excel предлага редица бързи и лесни начини за подреждане на колони или редове в азбучен ред. Но има само един метод за пренареждане на работни листове в Excel - плъзнете ги до желаната позиция в лентата с разделите на листа. Когато става въпрос за подреждане на разделите по азбучен ред в наистина голяма работна книга, това може да е дълъг и погрешен начин. Търсите алтернатива, която да спести време? Съществуват само две: код VBAили инструменти на трети страни.
Как да подреждате по азбучен ред разделите в Excel с VBA
По-долу ще намерите три примера за VBA код за сортиране на листове на Excel във възходяща, низходяща и в двете посоки според избора на потребителя.
Предполагаме, че имате известен опит с VBA, но ще опишем само основните стъпки за добавяне на макрос към работния лист:
- В работната книга на Excel натиснете Alt + F11, за да отворите редактора на Visual Basic.
- В левия прозорец щракнете с десния бутон на мишката върху Тази работна книга , след което щракнете върху Вмъкване на > Модул .
- Поставете кода VBA в прозореца Код.
- Натиснете F5, за да стартирате макроса.
За подробни инструкции стъпка по стъпка вижте Как да вмъкнете и стартирате VBA код в Excel.
Съвет: Ако искате да запазите макроса за по-нататъшно използване, не забравяйте да запишете файла като работна книга на Excel с поддръжка на макроси (.xlsm).
Като алтернатива можете да изтеглите нашата примерна работна книга Alphabetize Excel Tabs, да разрешите съдържанието, ако бъдете подканени, и да стартирате желания макрос директно оттам. Работната книга съдържа следните макроси:
- TabsAscending - подредете листовете по азбучен ред от А до Я.
- TabsDescending - подредете листовете в обратен ред, от Z към A.
- AlphabetizeTabs - сортиране на табове на листове в двете посоки - възходящо или низходящо.
След като примерната работна книга е изтеглена и отворена в Excel, отворете собствената си работна книга, в която искате да подредите по азбучен ред разделите, натиснете Alt + F8 , изберете желания макрос и щракнете върху Изпълнявайте .
Сортиране на разделите на Excel по азбучен ред от A до Z
Този малък макрос подрежда листовете в текущата работна книга в възходящ буквено-цифров ред , първо работните листове, чиито имена започват с цифри, а след това листовете от А до Я.
Sub TabsAscending() For i = 1 To Application.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name)> UCase$(Application.Sheets(j + 1).Name) Then Sheets(j).Move after:=Sheets(j + 1) End If Next Next MsgBox "The tabs have been sorted from A to Z." End SubПодреждане на разделите на Excel от Z до A
Ако искате да сортирате листовете си по низходящ буквено-цифров ред (от Z до A, след това листове с цифрови имена), след което използвайте следния код:
Sub TabsDescending() For i = 1 To Application.Sheets.Count For j = 1 To Application.Sheets.Count - 1 If UCase$(Application.Sheets(j).Name) <UCase$(Application.Sheets(j + 1).Name) Then Application.Sheets(j).Move after:=Application.Sheets(j + 1) End If Next Next MsgBox "The tabs have been sorted from Z to A." End SubПодреждане на разделите по азбучен ред във възходящ или низходящ ред
Този макрос позволява на потребителите ви да решат как да сортират работните листове в дадена работна книга - по азбучен ред от А до Я или в обратен ред.
Тъй като стандартният диалогов прозорец (MsgBox) в Excel VBA позволява избор само от няколко предварително дефинирани бутона, ще създадем собствена форма (UserForm) с три потребителски бутона: От А до Я , Z към A , и Отмяна на .
За целта отворете редактора на Visual Basic, щракнете с десния бутон на мишката върху Тази работна книга и щракнете върху Вмъкване на > Потребителски формуляр . Име на вашия формуляр SortOrderFrom и добавете към него 4 контроли: етикет и три бутона:
След това натиснете F7 (или щракнете два пъти върху формата), за да отворите Код и поставете в него кода по-долу. Кодът прихваща кликванията върху бутони и задава уникален таг на всеки бутон:
Private Sub CommandButton1_Click() Me.Tag = 1 Me.Hide End Sub Private Sub CommandButton2_Click() Me.Tag = 2 Me.Hide End Sub Private Sub CommandButton3_Click() Me.Tag = 0 Me.Hide End SubВ зависимост от това дали потребителят е щракнал върху От А до Я или Z към A на формуляра, да сортирате табовете във възходящ азбучен ред (избран по подразбиране) или в низходящ азбучен ред; или да затворите формуляра и да не правите нищо в случай на Отмяна на Това става със следния код VBA, който се вмъква по обичайния начин чрез Вмъкване на > Модул .
Sub AlphabetizeTabs() Dim SortOrder As Integer SortOrder = showUserForm If SortOrder = 0 Then Exit Sub For x = 1 To Application.Sheets.Count For y = 1 To Application.Sheets.Count - 1 If SortOrder = 1 Then If UCase$(Application.Sheets(y).Name)> UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If ElseIf SortOrder = 2 Then If UCase$(Application.Sheets(y).Name)<UCase$(Application.Sheets(y + 1).Name) Then Sheets(y).Move after:=Sheets(y + 1) End If End If Next Next End Sub Function showUserForm() As Integer showUserForm = 0 Load SortOrderForm SortOrderForm.Show (1) showUserForm = SortOrderForm.Tag Unload SortOrderForm End FunctionАко все още не владеете много добре VBA, можете просто да изтеглите нашата примерна работна книга за подреждане на разделите по азбучен ред, да я отворите в Excel заедно със собствения си файл, в който искате да подредите разделите, и да стартирате AlphabetizeTabs макрос от работната ви книга:
Изберете предпочитания ред на сортиране, например, От А до Я и наблюдавайте резултатите:
Съвет: С помощта на VBA можете също така да създавате копия на работните си листове в Excel. Кодът е наличен тук: Как да дублирате лист в Excel с VBA.
Как да сортирате разделите на Excel по азбучен ред с Ultimate Suite
На потребителите на нашия Ultimate Suite за Excel не се налага да се занимават с VBA - на тяхно разположение е многофункционален Workbook Manager:
С този инструмент, добавен към лентата на Excel, подреждането на разделите по азбучен ред става с едно щракване на бутон, точно както трябва да бъде!
Ако сте любопитни да разгледате тези и още над 70 професионални инструмента за Excel, можете да изтеглите пробна версия на нашия Ultimate Suite от тук.
Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!