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

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

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     Range("A1").Sort Key1:=Range("A2"), _       Order1:=xlAscending, Header:=xlYes, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom End 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")) Is Nothing Then         Range("A1").Sort Key1:=Range("A2"), _           Order1:=xlAscending, Header:=xlYes, _           OrderCustom:=1, MatchCase:=False, _           Orientation:=xlTopToBottom     End If End Sub

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

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

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9005) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Automatically_Sorting_as_You_Enter_Information [Автоматическая сортировка при вводе информации].