Note: The other languages of the website are Google-translated. Back to English

Як відсортувати дані стовпців, натиснувши на заголовок у Excel?

Припустимо, у мене є ряд даних, тепер я хотів би відсортувати дані за зростанням або за спаданням, натиснувши будь-який заголовок стовпця, щоб отримати наступний знімок екрана. Як ви могли вирішити цю роботу в Excel?

сортувати документ, натиснувши 1

Відсортуйте дані, натиснувши заголовок стовпця з кодом VBA


стрілка синя права міхур Відсортуйте дані, натиснувши заголовок стовпця з кодом VBA

Як правило, в Excel ви можете застосувати функцію сортування для швидкого та легкого сортування даних, але для сортування даних, просто натиснувши клітинку, наступний код VBA може зробити вам послугу.

1. Клацніть правою кнопкою миші вкладку аркуша, для якої потрібно сортувати дані, клацнувши клітинку, і виберіть Переглянути код з контекстного меню та у відкритому вікні Microsoft Visual Basic для програм вікно, скопіюйте та вставте наступний код у порожній модуль:

Код VBA: відсортуйте дані, клацнувши на заголовок комірки або стовпця:

Public blnToggle As Boolean
Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice
Dim LastColumn As Long, keyColumn As Long, LastRow As Long
Dim SortRange As Range
LastColumn = _
Cells.Find(What:="*", After:=Range("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target.Column
If keyColumn > LastColumn Then Exit Sub
Application.ScreenUpdating = False
Cancel = True
LastRow = Cells(Rows.Count, keyColumn).End(xlUp).Row
Set SortRange = Target.CurrentRegion
blnToggle = Not blnToggle
If blnToggle = True Then
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlYes
Else
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlYes
End If
Set SortRange = Nothing
Application.ScreenUpdating = True
End Sub

сортувати документ, натиснувши 2

2. А потім збережіть і закрийте вікно коду, тепер, коли ви двічі клацнете будь-яку клітинку або заголовок стовпця в межах діапазону даних, стовпець буде відсортовано за зростанням, якщо ви двічі клацнете на ньому ще раз, стовпець буде відсортовано за зменшенням відразу.


Інші відповідні статті:

Як змінити значення комірки, натиснувши клітинку?

Як фільтрувати дані, просто клацнувши вміст комірки в Excel?


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (7)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Працює нормально, щоб піднятися, двічі клацніть 2-й раз, як зазначено для спуску, нічого не робить
Цей коментар був мінімізований модератором на сайті
Не працює, нічого не відбувається, знаю, як створити модуль у vba, зробив це, зберіг і нічого при подвійному клацанні заголовка. Будь ласка, виправте це.
Цей коментар був мінімізований модератором на сайті
Не можна робити крекерджек - не працює
Цей коментар був мінімізований модератором на сайті
Привіт, Роб! Наведений вище код добре працює в моєму Excel, чи можете ви надати тут знімок екрана своєї проблеми?
Цей коментар був мінімізований модератором на сайті
Привіт
der Code funktioniert auch gut bei mir. Allerdings würde ich gerne die oberen beiden Zeilen nicht mit sortieren, da diese die Überschriften sind.
Wie muss ich dann diesen Code ändern?

Спасибо!
Цей коментар був мінімізований модератором на сайті
Привіт друже,
Ось VBA, який вам потрібен:

Public blnToggle As Boolean
Приватний додатковий аркуш_BeforeDoubleClick _
(ByVal Target As Range, Cancel як Boolean)
'Оновлення Extendoffice
Згасити останній стовпець до тих пір, як ключовий стовпець, доки останній рядок
Dim SortRange як діапазон
Останній стовпець = _
Клітинки. Знайти(Що:="*", Після:=Діапазон("A1"), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
keyColumn = Target. Column
Якщо keyColumn > Last Column, то вийдіть із підпорядкування
Application.ScreenUpdating = Невірний
Скасувати = Правда
Останній рядок = клітинки (рядків. Кількість, ключовий стовпець). Кінець (xlUp). Рядок
On Error Resume Next
Встановіть SortRange = Target.CurrentRegion
Dim i As Long
я = 2
Встановити SortRange = SortRange.Offset(i, 0)
Встановити SortRange = SortRange.Resize(SortRange.Rows.Count - i, SortRange.Columns.Count)
blnToggle = Не blnToggle
Якщо blnToggle = True, то
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlAscending, Header:=xlNo
Ще
SortRange.Sort _
Key1:=Cells(2, keyColumn), Order1:=xlDescending, Header:=xlNo
End If
Встановіть SortRange = Нічого
Application.ScreenUpdating = True
End Sub


Якщо у вас є заголовки з 3 рядків, просто змініть "i =2" на "i =3" у VBA. Сподіваюся, це допоможе. Гарного дня.

З повагою,
Менді
Цей коментар був мінімізований модератором на сайті
Hi Mandy/all,

Is it possible to change your code to only sort when the headers are double clicked instead of any cell?

Спасибі вам велике!
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL