Зміст
В уроці показано, як за допомогою коду VBA та інструменту "Диспетчер робочих книг" можна швидко відсортувати аркуші Excel в алфавітному порядку.
Microsoft Excel надає ряд швидких і простих способів упорядкування стовпців або рядків в алфавітному порядку. Але існує тільки один спосіб перестановки робочих аркушів в Excel - перетягування їх в потрібну позицію на панелі вкладок аркуша. Коли справа доходить до упорядкування вкладок в алфавітному порядку в дійсно великій книзі, це може бути довгим і помилковим способом. Шукаєте альтернативу, що економить час? Їх існує тільки два: код VBAабо сторонніми інструментами.
Як впорядкувати вкладки в Excel за алфавітом за допомогою VBA
Нижче наведено три приклади коду на VBA для сортування аркушів Excel за зростанням, спаданням і в будь-якому напрямку за вибором користувача.
Маючи на увазі, що у вас є певний досвід роботи з VBA, ми опишемо лише основні кроки для додавання макросу на робочий аркуш:
- У вашій книзі Excel натисніть Alt + F11, щоб відкрити редактор Visual Basic.
- На лівій панелі натисніть правою кнопкою миші ThisWorkbook , а потім натисніть Вставка > Модуль .
- Вставте код VBA у вікно Code.
- Натисніть F5, щоб запустити макрос.
Детальну покрокову інструкцію див. у статті Як вставити і запустити код VBA в Excel.
Порада: якщо ви хочете зберегти макрос для подальшого використання, обов'язково збережіть файл як робочу книгу Excel з підтримкою макросів (.xlsm).
Крім того, ви можете завантажити наш зразок книги "Впорядкування вкладок Excel за алфавітом", увімкнути вміст, якщо з'явиться відповідний запит, і запустити потрібний макрос безпосередньо звідти. Книга містить наступні макроси:
- ВкладкиЗа зростанням - сортувати листи за алфавітом від А до Я.
- ВкладкиЗа спаданням - розкласти аркуші у зворотному порядку, від Z до A.
- Вкладки за алфавітом - сортувати вкладки аркуша в обох напрямках, за зростанням або спаданням.
Завантаживши і відкривши зразок робочої книги в Excel, відкрийте власну робочу книгу, в якій потрібно впорядкувати вкладки за алфавітом, натисніть Alt + F8 , виберіть потрібний макрос і натисніть Біжи .
Сортування вкладок Excel за алфавітом від A до Z
Цей невеликий макрос упорядковує аркуші в поточній книзі в такий спосіб за зростанням алфавітно-цифрового порядку спочатку аркуші, назви яких починаються з цифр, потім аркуші від 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 "Вкладки відсортовані від A до 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 "Вкладки відсортовані від Z до A." End SubВкладки в алфавітному порядку за зростанням або спаданням
Цей макрос дозволяє користувачам вирішувати, як сортувати аркуші в даній книзі: за алфавітом від А до Я або в зворотному порядку.
Оскільки стандартне діалогове вікно (MsgBox) в Excel VBA дозволяє вибирати тільки з декількох заздалегідь визначених кнопок, ми створимо власну форму (UserForm) з трьома користувацькими кнопками: Від А до Я , Від А до Я і Скасувати .
Для цього відкриваємо редактор Visual Basic, натискаємо правою кнопкою миші ThisWorkbook і натисніть Вставка > UserForm Назвіть вашу форму 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Залежно від того, чи натиснув користувач на кнопку Від А до Я або Від А до Я на формі, відсортувати вкладки за зростанням алфавіту (вибрано за замовчуванням) або за спаданням алфавіту; або закрити форму і нічого не робити у випадку, якщо Скасувати Для цього використовується наступний код 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 разом з вашим власним файлом, де ви хочете сортувати вкладки, і виконати команду Вкладки за алфавітом макрос з вашої робочої книги:
Виберіть, наприклад, бажаний порядок сортування, Від А до Я і спостерігати за результатами:
Порада: За допомогою VBA ви також можете створювати копії аркушів Excel. Код доступний тут: Як створити копію аркуша в Excel за допомогою VBA.
Як сортувати вкладки Excel за алфавітом в Ultimate Suite
Користувачам нашого Ultimate Suite для Excel не доведеться возитися з VBA - в їх розпорядженні багатофункціональний Workbook Manager:
З цим інструментом, доданим до стрічки Excel, впорядкування вкладок за алфавітом виконується одним натисканням кнопки, саме так, як це і повинно бути!
Якщо вам цікаво ознайомитися з цим та ще понад 70 професійними інструментами для Excel, пробну версію нашого пакету Ultimate Suite можна завантажити тут.
Дякую за увагу і сподіваюсь побачити Вас на нашому блозі наступного тижня!