Автоматическая сортировка при вводе информации

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

Единственный способ, которым это может быть сделано с помощью макроса, который запускается всякий раз, когда что-то новое вводится в рабочий лист. Вы можете, например, добавить макрос в код рабочего листа, который запускается, когда что-то на листе изменяется. (Вы можете просмотреть окно кода, щелкнув правой кнопкой мыши вкладку рабочего листа и выбрав Просмотреть код в появившемся контекстном меню.) Ниже приведен пример одного такого простого макроса:

 Private Sub Worksheet_Change (ByVal  Целевой как диапазон) При ошибке Возобновить следующий диапазон ("A1"). Ключ сортировки1: = Диапазон ("A2"), _ Order1: = xlAscending, Header: = xlYes, _ OrderCustom: = 1, MatchCase: = False, _ Orientation  : = xlTopToBottomEnd Sub 

Макрос предполагает, что вы хотите отсортировать данные в столбце A и что в ячейке A1 есть заголовок. Если имена находятся в другом столбце, просто замените ссылку ячейки A2 на другой столбец, например B2, C2 и т. Д.

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

 Private Sub Worksheet_Change (ByVal Target As Range) On Error Resume Next If Not Intersect (Target, Range ("  A: A ")) Ничего, тогда Range (" A1 "). Sort Key1: = Range (" A2 "), _ Order1: = xlAscending, Header: = xlYes, _ OrderCustom: = 1, MatchCase: = False, _  Ориентация: = xlTopToBottom End IfEnd Sub 

Использование макроса для автоматической сортировки данных имеет некоторые недостатки. Во-первых, поскольку вы используете макрос для сортировки, операция по сути является «окончательной». Другими словами, после сортировки вы не можете использовать Ctrl + Z для отмены операции.

Второй недостаток заключается в том, что ввод данных может немного сбивать с толку . Например, если вы используете любой из вышеперечисленных макросов и начинаете вводить имена в рабочий лист, они будут отсортированы, как только вы закончите то, что находится в столбце A. Если ваши данные используют пять столбцов и вы начинаете ввод в строке 15 , как только вы закончите вводить имя в столбец A (и до того, как вы введете данные в столбцы с B по E), ваши данные будут отсортированы в правильном порядке. Это означает, что вам нужно будет найти, куда он был перемещен при сортировке, выбрать нужную ячейку в столбце B, а затем ввести остальные данные для записи. Конечно, можно добавить данные в неестественном порядке – просто убедитесь, что имя в столбце A – это последнее, что вы вводите для записи.

Оцените статью
Frestage.ru
Добавить комментарий