Как автоматически обновить отсортированный диапазон через VBA на вашем листе Excel

Поделись сейчас:

Пользовательская сортировка в Excel — очень полезная функция. В этой статье мы поговорим о том, как автоматически обновлять пользовательскую сортировку в диапазоне с помощью Excel VBA.

Когда вы используете пользовательскую сортировку, вы обнаружите, что это замечательная функция в Excel. Однако, если вы часто используете эту функцию, вы также можете столкнуться с проблемой. Вы будете сортировать в диапазоне с определенными данными и информацией. Когда вы добавляете в диапазон дополнительные данные и информацию, порядок в диапазоне не изменится автоматически. На изображении ниже показан пример такого состояния.Пример

Когда вы добавляете новый набор данных в диапазон, он не меняет ранг автоматически. Если вы все еще хотите отсортировать этот больший диапазон с новым набором данных по тем же критериям, вам нужно снова выполнить процесс пользовательской сортировки. Вы можете видеть, что это очень хлопотно, особенно когда вам нужно постоянно обновлять данные и информацию на листе. Каждый раз, когда вы добавляете новую информацию в диапазон, вам нужно снова сортировать. Чтобы решить эту проблему и быстро закончить свою задачу, вы можете продолжить чтение этой статьи.

Запись макроса

Когда критерии пользовательской сортировки очень сложны, вам будет сложно писать коды VBA напрямую. Таким образом, теперь вы можете сначала записать макрос. А коды в этом макросе можно использовать в других макросах. Процесс записи кодов очень прост.

  1. Перед записью макроса необходимо добавить вкладку VBA на ленту. Здесь щелкните правой кнопкой мыши любую вкладку на ленте.
  2. А затем выберите «Настроить ленту» в меню.Настроить ленту
  3. Теперь в окне «Параметры Excel» отметьте опцию «Разработчик» в списке «Основные вкладки».Застройщик
  4. После этого нажмите «ОК» в окне. Поэтому вы добавили вкладку на ленту.
  5. Теперь вы вернетесь к рабочему листу. Нажмите на вкладку «Разработчик», которую вы добавили.
  6. А затем нажмите кнопку «Запись макроса» на панели инструментов. Таким образом, всплывет окно «Запись макроса».Запись макроса

С другой стороны, вы также можете нажать маленькую кнопку в нижней части рабочего листа, чтобы заменить предыдущие 6 шагов.Запись макроса

  1. Теперь в окне «Запись макроса» введите имя в первое текстовое поле. Назначьте сочетание клавиш, если вам нужно. А затем добавьте описание в соответствии с вашими потребностями.Установить макрос
  2. Далее нажмите «ОК». Таким образом, макрос начинает записывать каждую операцию, которую вы совершаете.
  3. Выберите диапазон, который вам нужно отсортировать на листе.
  4. Нажмите на вкладку «Главная».
  5. Затем нажмите кнопку «Сортировка и фильтрация» на ленте.
  6. В выпадающем списке выберите опцию «Пользовательская сортировка».Пользовательская сортировка
  7. В окне «Сортировка» установите критерии в соответствии с вашими потребностями. Все действия будут записаны в макрос.Сортировать

Когда вы записываете макрос, не делайте дополнительных шагов. В противном случае эти шаги также будут записаны. И это вызовет проблемы в следующей части.

  1. После того, как вы закончите настройку в окне «Сортировка», нажмите «ОК», чтобы сохранить настройки.
  2. Теперь снова щелкните вкладку «Разработчик» на ленте.
  3. А затем нажмите кнопку «Остановить запись». Когда рабочий лист находится в состоянии записи макросов, кнопка изменится на «Остановить запись».Остановить запись

Вы также можете нажать кнопку в нижней части рабочего листа, чтобы остановить запись макроса. Итак, вы закончили запись. Все критерии сортировки сохранены в макросе 1.

Используйте макросы Excel VBA

В этой части мы покажем вам, как использовать макросы VBA для обновления пользовательской сортировки на вашем листе. И вы также будете использовать записанные макросы в этой части.

  1. Щелкните вкладку «Разработчик» на ленте.
  2. А затем нажмите кнопку «Visual Basic» на панели инструментов. Вместо этого вы также можете нажать кнопку «Alt + F11» на клавиатуре, чтобы заменить 2 шага.Визуальный Бейсик
  3. В редакторе Visual Basic дважды щелкните лист в области «VBAProject». На этом листе вам нужно обновить пользовательскую сортировку. И в вашем реальном файле вам нужно дважды щелкнуть соответствующий лист.
  4. Теперь введите следующие коды в область.
Private Sub Worksheet_Change (ByVal Tarполучить как диапазон) End Sub
  1. Затем введите следующие коды между двумя приведенными выше предложениями VBA.
Application.ScreenUpdating = False, если не пересекаются (Target, Range("A1:C13")) Is Nothing Then End If

Здесь оценивается диапазон. Для объема продаж будет 12 месяцев, и вместе с первой строкой заголовка мы вводим диапазон «A1:C13». Вы также можете ввести диапазон в коды в соответствии с вашим фактическим рабочим листом.

  1. На этом шаге откройте модуль 1 в редакторе. Коды в этом модуле — это процесс пользовательской сортировки, который вы сделали ранее. Вы можете видеть, что использование функции записи макросов может сэкономить вам много времени.
  2. Теперь скопируйте основную часть в этот модуль.Копировать
  3. Затем дважды щелкните значок tarполучить лист в части «VBAProject».
  4. После этого вставьте коды в коды IF-END IF.
  5. А затем измените диапазон в кодах в соответствии с вашими потребностями. Записанный макрос немного сложен и избыточен. Вы также можете изменить его в соответствии с вашими потребностями. Поэтому полные коды VBA будут такими:
Private Sub Worksheet_Change (ByVal Tarполучить как диапазон) Application.ScreenUpdating = False, если не пересекается (Target, Range("A1:C13")) ничего не значит с ActiveWorkbook.Worksheets("Sheet1").Sort .SortFields.Clear .SortFields.Add Key:=Range("B2:B13"), _ SortOn:=xlSortOnValues , Order:=xlDescending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("C2:C13"), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal End With ActiveWorkbook.Worksheets("Sheet1 ").Sort .SetRange Range("A1:C13") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If End Sub

Добавляем в коды еще один WITH-END WITH. Таким образом, будет понятнее рекордный результат. Если у вас есть другие требования, вы также можете изменить его в соответствии с вашими реальными потребностями. Вы должны быть осторожны при изменении кодов. В противном случае вы получите неверный результат на листе.

  1. Теперь вы закончили коды VBA в редакторе. Вы можете вернуться к рабочему листу и проверить результат. Когда вы добавите следующий месяц и соответствующие числа в диапазон, пользовательская сортировка автоматически обновится.Тест

Таким образом, вам никогда не придется вручную обновлять пользовательскую сортировку каждый раз, когда вы вводите новые элементы в tarполучить диапазон. С другой стороны, вам нужно сохранить эту книгу как файл Excel с поддержкой макросов. В противном случае вы потеряете коды, если сохраните как обычный файл.

Окажем помощь пострадавшим от коррупции Excel

Все мы знаем, что Excel очень мощен и может помочь вам быстро и легко завершить работу. Но приложение Excel все еще далеко от совершенства. Иногда Excel повреждается по разным причинам. Как только Excel испортится, вы не сможете завершить свои задачи с помощью этого приложения. Для того, чтобы работать лучше, вам нужно будет отремонтировать его как можно скорее.

Наша компания уже много лет занимается восстановлением файлов, особенно восстановлением Excel. Поэтому вы можете обратиться за помощью к нашим техническим специалистам. Имея многолетний опыт, мы можем легко выяснить причину, которая вызывает повреждение ваших файлов. И помочь вам лучше восстановить повреждение файла Excel xlsx, мы разработали сторонний инструмент. Этим инструментом очень легко манипулировать, и вам не нужно беспокоиться о проблеме конфиденциальности.

Об авторе:

Анна Ма — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая исправить ошибку Word docx и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.