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

Как отсортировать данные сразу на нескольких листах?

В Excel мы можем быстро и легко сортировать данные на листе на основе определенного столбца, но пробовали ли вы когда-нибудь сортировать данные на нескольких листах? Чтобы отсортировать их по одному, потребуется много времени, в этой статье я представлю простой способ решения.

Сортировка данных на нескольких листах одновременно с кодом VBA


стрелка синий правый пузырь Сортировка данных на нескольких листах одновременно с кодом VBA

Чтобы отсортировать данные по одному столбцу на всех листах книги, вам может помочь следующий код VBA.

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.

Код VBA: Сортировка данных на нескольких листах одновременно:

Sub SortAllSheets()
   'Updateby Extendoffice
   Dim WS      As Worksheet
   ActiveSheet.Range("a1:f1").Select
   Selection.Copy
   On Error Resume Next
   Application.ScreenUpdating = False
   For Each WS In Worksheets
      WS.Columns("A:F").Sort Key1:=WS.Columns("E"), Order1:=xlDescending
   Next WS
   ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteAll
   Application.ScreenUpdating = True
End Sub

3, Затем нажмите F5 ключ для запуска этого кода, все листы с одинаковым форматированием были отсортированы по столбцу E каждого листа сразу в порядке убывания.

Внимание: В приведенном выше коде А: Ж диапазон данных, который вы хотите отсортировать, E это буква столбца, по которой вы хотите отсортировать.


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (11)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Не работает ...
Этот комментарий был сведен к минимуму модератором на сайте
Как я могу заставить это работать для нескольких столбцов. Я пытаюсь отсортировать некоторые по столбцу K, а некоторые по столбцу M, и я знаю точные номера листов. Мой столбец M (когда я использую приведенный выше код) сортируется только по K, а не по M, поэтому он не работает. 
Этот комментарий был сведен к минимуму модератором на сайте
работал как шарм для меня ... спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
работает хорошо, но как мне избежать включения заголовков (например, строки 1?)
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Люси,
Чтобы отсортировать все листы, исключая строку заголовка, примените приведенный ниже код vba: (Примечание: измените ссылки на ячейки в соответствии с вашими потребностями)

Sub SortAllSheets ()
'Обновить Extendoffice
Dim WS как рабочий лист
Dim xIntR как целое число
ActiveSheet.Range("A1:F1").Выбрать
On Error Resume Next
Приложение.ScreenUpdating = False
Для каждого WS в рабочих листах
xIntR = Intersect(WS.UsedRange, WS.Range("A:F")).Rows.Count
WS.Range("A2:F" & xIntR).Sort Key1:=WS.Range("A2:A" & xIntR), Order1:=xlDescending
Следующий WS
Application.ScreenUpdating = True
End Sub

Пожалуйста, попробуйте, надеюсь, это поможет вам!
Этот комментарий был сведен к минимуму модератором на сайте
В надежде, что ты увидишь это...! Это прекрасно работает, но включает ячейки с формулой, но без данных, создавая пробелы на вкладках и путая данные в строках. Мне нужно сохранить эти ячейки на моих вкладках, поскольку они ищут имена, добавленные на «главную вкладку». Я хочу, чтобы она сортировала только ячейки с фактическим именем - быстрое решение ???
Этот комментарий был сведен к минимуму модератором на сайте
Очень полезный код Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Эй, это здорово! Большое спасибо за это! Моя единственная проблема с этим кодом заключается в том, что он не выполняется на моем первом листе. Он выполняется на моих оставшихся листах. Как мне заставить это выполняться на всех листах? Как будто код пропускает первый лист. Любая помощь приветствуется :)
Этот комментарий был сведен к минимуму модератором на сайте
Я хочу разделить данные на несколько рабочих книг, а затем добавить значение в один из столбцов.

Я подготовил код для разделения данных в книгах... но мне нужна помощь в добавлении суммы в один из столбцов
Этот комментарий был сведен к минимуму модератором на сайте
Можете ли вы запустить это, не включая все листы? Т.е. оставить какие-то листы вне макроса?
Этот комментарий был сведен к минимуму модератором на сайте
Это не сработало для меня. У меня есть рабочая книга с 12 листами, упорядоченными по месяцам года, каждый лист содержит соответствующие данные о продуктах компаний и т. Д. Моя цель - отсортировать и отфильтровать все листы в рабочей книге. Я хотел бы иметь один лист, который будет действовать как родительский лист (например, первый месяц года), на котором я буду выполнять функцию фильтрации или сортировки (например, сортировка A -> Z), и автоматически другие листы будут следовать тому же сортировать или фильтровать. Например, при использовании листа с надписью «Январь», если, например, я выбираю столбец «D», который включает дни в месяце, который я хочу, в «возрастающем» порядке - при актуализации сортировки A -> Z на листе «Январь» , я хочу, чтобы это повлияло на остальные все листы в последовательности (февраль-декабрь) со всеми днями месяца, отсортированными по A -> Z. Любые изменения, сделанные на листе «Январь», поскольку они относятся к сортировке и фильтрации, должны влияет на баланс листов в рабочей тетради.
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL