Сортировка данных в таблице на рабочем листе Excel средствами VBA. Sort и SortField, объекты и методы. Примеры сортировки данных в диапазоне.
Синтаксис сортировки
Синтаксис полного кода VBA Excel, применяемого для сортировки данных в таблицах и диапазонах:
With Expression.Sort .SortFields.Clear .SortFields.Add Key, SortOn, Order, DataOption .SetRange [Range] .Header = [xlGuess, xlYes, xlNo] .MatchCase = [True, False] .Orientation = [xlTopToBottom, xlLeftToRight] .Apply End With |
Синтаксис сокращенного кода VBA Excel, применяемого для сортировки данных с параметрами по умолчанию:
With Expression.Sort .SortFields.Clear .SortFields.Add Key .SetRange [Range] .Apply End With |
Expression – выражение, возвращающее объект Worksheet, например:
ActiveSheet Worksheets («Лист1») ActiveWorkbook.Worksheets («Лист1») Workbooks(«Книга1.xlsm»).Worksheets («Лист1») |
Расшифровка кода
1. Expression.Sort
– метод Sort объекта Worksheet возвращает объект Sort.
Объект Sort – это объект, представляющий сортировку диапазона данных.
2. .SortFields.Clear
– метод SortFields объекта Sort возвращает коллекцию объектов SortFields. Метод Clear объекта SortFields удаляет все существующие объекты SortField.
Объект SortField содержит все сведения о параметрах сортировки для заданного рабочего листа.
3. .SortFields.Add Key, SortOn, Order, DataOption
– метод Add объекта SortFields создает и возвращает новый экземпляр объекта SortField с заданными параметрами.
Параметры метода Add объекта SortFields:
Key
– обязательный параметр, который задает значение ключа для сортировки. Тип данных – Range. Обычно указывается первая ячейка столбца при сортировке по строкам или первая ячейка строки при сортировке по столбцам. Сортировка диапазона будет осуществлена по данным столбца (строки), первая ячейка которого указана в качестве ключа.
SortOn
– необязательный параметр, который задает критерий сортировки (по какому свойству ячеек производится сортировка).
Значения, которые может принимать SortOn:
Константа | Значение | Описание |
---|---|---|
SortOnValues | 0 | сортировка по значению (значение по умолчанию) |
SortOnCellColor | 1 | сортировка по цвету ячейки |
SortOnFontColor | 2 | сортировка по цвету шрифта |
SortOnIcon | 3 | сортировка по иконке* |
* Иконки (значки) могут быть заданы ячейкам при условном форматировании диапазона.
Order
– необязательный параметр, задающий порядок сортировки (по возрастанию или по убыванию).
Значения, которые может принимать Order:
Константа | Значение | Описание |
---|---|---|
xlAscending | 1 | сортировка по возрастанию (значение по умолчанию) |
xlDescending | 2 | сортировка по убыванию |
DataOption
– необязательный параметр, который задает способ сортировки текста.
Значения, которые может принимать DataOption:
Константа | Значение | Описание |
---|---|---|
xlSortNormal | 0 | числовые и текстовые данные сортируются отдельно (значение по умолчанию) |
xlSortTextAsNumbers | 1 | текстовые данные рассматриваются для сортировки как числовые |
4. .SetRange [Range]
– метод SetRange объекта Sort задает диапазон (таблицу), в котором выполняется сортировка.
5. .Header = [xlGuess, xlYes, xlNo]
– свойство Header объекта Sort указывает, является ли первая строка таблицы строкой заголовков (шапкой).
Значения, которые может принимать свойство Header:
Константа | Значение | Описание |
---|---|---|
xlGuess | 0 | Excel сам определяет, есть ли строка заголовков |
xlYes | 1 | строка заголовков есть, сортировка ее не затрагивает |
xlNo | 2 | строки заголовков нет (значение по умолчанию) |
6. .MatchCase = [True, False]
– свойство MatchCase объекта Sort указывает, как учитывать регистр при сортировке.
Значения, которые может принимать свойство MatchCase:
Константа | Значение | Описание |
---|---|---|
False | 0 | регистр не учитывается (значение по умолчанию) |
True | 1 | сортировка с учетом регистра |
7. .Orientation = [xlTopToBottom, xlLeftToRight]
– свойство Orientation объекта Sort задает ориентацию для сортировки.
Значения, которые может принимать свойство Orientation:
Константа | Значение | Описание |
---|---|---|
xlTopToBottom | 1 | сортировка по стокам (значение по умолчанию) |
xlLeftToRight | 2 | сортировка по столбцам |
8. .Apply
– метод Apply объекта Sort выполняет сортировку диапазона в соответствии с примененными параметрами.
Примеры сортировки
Таблица для примеров
Сортировка по одному столбцу
Краткая запись кода VBA Excel для сортировки диапазона по первому столбцу с параметрами по умолчанию:
Sub Primer1() With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2») .SetRange Range(«A2:C7») .Apply End With End Sub |
Полная запись, но тоже с параметрами по умолчанию:
Sub Primer2() With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2»), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range(«A2:C7») .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .Apply End With End Sub |
Результат сортировки:
Сортировка по двум столбцам
Код VBA Excel для сортировки исходной таблицы по первому и второму столбцам с параметрами по умолчанию:
Sub Primer3() With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2») .SortFields.Add Key:=Range(«B2») .SetRange Range(«A2:C7») .Apply End With End Sub |
Результат сортировки:
Применение сортировки ко второму столбцу (добавление еще одного объекта SortField) не нарушает сортировку первого – в первом столбце меняются местами только ячейки с одинаковыми значениями.
Доброго времени суток! Заранее премного благодарен Изменено: Karen-Sochi — 25.03.2017 21:14:44 |
|
Sanja Пользователь Сообщений: 14838 |
#2 25.03.2017 21:27:57 В модуль нужного листа
Согласие есть продукт при полном непротивлении сторон. |
||
В «теле» уже есть 10 модулей, пара листов в книге. Нужно создать новый модуль?. |
|
Sanja Пользователь Сообщений: 14838 |
Правой кнопкой мыши по ярлыку нужного листа — Исходный текст. Откроется как раз модуль нужного листа Согласие есть продукт при полном непротивлении сторон. |
Все получилось, спасибо))) Изменено: Karen-Sochi — 25.03.2017 22:10:52 |
|
Sanja Пользователь Сообщений: 14838 |
#6 25.03.2017 22:12:23
Вы бы ‘нарисовали’ лучше файл-пример, в котором-бы показали Как есть — Как надо. Согласие есть продукт при полном непротивлении сторон. |
||
С автоматической нумерацией разобрался, столбец А меня не интересует |
|
Sanja Пользователь Сообщений: 14838 |
В коде выше (сообщение # 2), строку 9 исправьте так Согласие есть продукт при полном непротивлении сторон. |
Не помогло. |
|
Sanja Пользователь Сообщений: 14838 |
#10 25.03.2017 22:46:50
Вы сами не можете поменять ОДНУ букву в коде? Обратите внимание что E-латинская! Согласие есть продукт при полном непротивлении сторон. |
||
Я поменял, в моей таблице не работает |
|
gling Пользователь Сообщений: 4024 |
#12 25.03.2017 22:52:31
Возможно Е русской раскладки, а надо англ. |
||
Sanja Пользователь Сообщений: 14838 |
Странно… Согласие есть продукт при полном непротивлении сторон. |
Именно в английской поменял. |
|
Наверное тяжелый случай))) |
|
Sanja Пользователь Сообщений: 14838 |
#16 25.03.2017 23:02:19
Так а Вы что просили?
Ровно это макрос и делает Согласие есть продукт при полном непротивлении сторон. |
||||
Да, делает, в той таблице, которую я Вам послал макрос делает именно так, как мне нужно! |
|
Sanja Пользователь Сообщений: 14838 |
В коде, букву E замените на букву крайнего правого столбца Вашей таблицы Согласие есть продукт при полном непротивлении сторон. |
Крайний правый столбец Е |
|
Спасибо, Вы мне очень помогли))))))) |
|
lerasoroka Пользователь Сообщений: 6 |
Подскажите пожалуйста, а что нужно добавить в данный макрос, чтобы сортировка была по нескольким столбцам сразу. Например, как в файле у ТС, если попадаются однофамильцы, то чтобы сортировалось еще например по городу???? |
Ксюшка Пользователь Сообщений: 40 |
Уважаемые эксперты! Большая просьба. Помогите пожалуйста с данным макросом. Заранее благодарна. Прикрепленные файлы
|
Sanja Пользователь Сообщений: 14838 |
А какой ключевой столбец для сортировки? Согласие есть продукт при полном непротивлении сторон. |
Ксюшка Пользователь Сообщений: 40 |
Ой, ключевой столбец D. |
Sanja Пользователь Сообщений: 14838 |
#25 27.07.2017 16:46:04 Замените ВСЕ, что у Вас в модуле листа одним макросом
Прикрепленные файлы
Изменено: Sanja — 27.07.2017 16:49:34 Согласие есть продукт при полном непротивлении сторон. |
|
AAF Пользователь Сообщений: 1000 |
#26 27.07.2017 18:16:43 К Файлу в сообщении 7 Сортировка по нескольким столбцам
Стандартный модуль
Изменено: AAF — 27.07.2017 18:23:27 |
||||
Ксюшка Пользователь Сообщений: 40 |
|
Ксюшка Пользователь Сообщений: 40 |
#28 28.07.2017 10:26:55
Sanja , у меня все отлично работает. Но подскажите мне пожалуйста. У меня таблица гораздо больше, чем тот вариант, который я прислала (полная версия не загружалась). Я не нашла где в макросе регулируется диапазон. (Стыдно, лузер…..). Подскажите мне пожалуйста, где это в макросе нужно регулировать. Реальные диапазоны 12:785 и 787:1561 |
||
Sanja Пользователь Сообщений: 14838 |
#29 29.07.2017 13:58:44
В коде диапазоны ;жёстко не прописаны. Их адреса определяются в ходе работы макроса, и привязаны к ячейкам с названиями («Канцелярські товари» и «Господарські товари») Согласие есть продукт при полном непротивлении сторон. |
||
Ксюшка Пользователь Сообщений: 40 |
#30 31.07.2017 10:18:14 Спасибо огромное! Все работает. Счастлива!!! |
Вроде вчера разобрался с похожей задачей, но рано начал радоваться.
Мне необходимо то же самое, но надо сделать так, чтобы после этого…
[vba]
Код
.SortFields.Add Key:=Range(«CT8:CT» & Range(«A» & Rows.Count).End(xlUp).Row), Order:=xlDescending
[/vba]
…выполнялась еще одна сортировка.
Добавил такую же строку, работало день, сегодня уже ошибку выдает.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
With ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort
.SortFields.Clear
.SortFields.Add Key:=Range(«F5:F3000» & Range(«D» & Rows.Count).End(xlUp).Row), Order:=xlAscending
.SortFields.Add Key:=Range(«G5:G3000» & Range(«E» & Rows.Count).End(xlUp).Row), Order:=xlAscending
.Apply
End With
End Sub
[/vba]
Вероятно, что некорректно сделал.
Плюс у вас же уже код есть в модуле книги. Там я тоже внес изменения под себя. Но там вроде все норм.
[vba]
Код
Option Explicit
Sub Макрос1()
‘
‘ Макрос1 Макрос
‘
‘
ActiveWorkbook.Worksheets(«Лист»).AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort.SortFields.Add Key:=Range( _
«F4:F3000»), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort.SortFields.Add Key:=Range( _
«G4:G3000»), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(«Лист2»).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlBottomToTop
.SortMethod = xlPinYin
.Apply
End With
End Sub
[/vba]
Сортировка в Excel формулой.
Смотрите также: данные обновлять неФайл не получилось лист, туда формулу срабатывал на странице? (к примеру, в я новичок, поэтому что столбец «G» одном из форумов, ЧТО (A3:C11) между буквами и но я его помощь. сразу по нескольким Или в определенной=ЕСЛИОШИБКА(ИНДЕКС(Фамилии;ПОИСКПОЗ(НАИМЕНЬШИЙ(СЧЁТЕСЛИ(Фамилии;» И формулу «НАИБОЛЬШИЙ». =НАИБОЛЬШИЙ(A:A;СТРОКА(A1))Есть несколько способов формулой, а макросом. приложить, ну и
например Поскольку идет импорт 3 и 40 просьба не быть
у меня формируется
если найду, выложу, и сортируем сначала
проч. не смог адаптироватьНа всякий случай
столбцам и строкам, последовательности — звание,
протянуть вниз по
Второй способ, как сделать сортировку и добавить сортировку. ладно… (Только нужно=COUNTA(Лист1!A:S) данных извне и строках) — остальная слишком строгими ко
на основании сложения но формулы там по Диапазону Название
Serge к своему файлу
опишу механику фильтрации по нескольким условиям.
чин, должность, название столбцу чуть ниже. в и можно запускать первую таблицу сделатьВ модуль этого обновляются с периодичностью информация не должна мне. Вопрос следующий. и умножения других гигантские скажу сразу! (А3:А11): А почему не :(
по значению, может Как настроить такую
месяцев по порядку, последней строки таблицы.Сортировка по алфавиту вExcel кнопкой или сочетанием массивом «Таблица1») листа код 5 минут. То
попадать на новый У меня есть ячеек, и данный )потом по Диапазону использовать сводную?Возможно это както кто сделает проще. сортировку, смотрите в а не поЕсли данные вExcel.. Для этого есть
клавиш. Успехов!updPrivate Sub Worksheet_Calculate() есть, чтобы макрос
лист. Импорт данных некая информация преобразованная макрос автоматически произведётExcel-ok Столбец1 (В3:В11)Григорий формулами сделать?1)В таблицу с статье «Сортировка в алфавиту.
excel-office.ru
Как настроить сортировку в Excel.
таблице не сортируютсяЕсли в столбцефункция вLelushПолучилось. Лист1.www End Sub для «Статистики» срабатывал из внешних источников в excel-файл. Необходимо сортировку только если: Читать так:Проверьте имена диапазонов: Serge Для своднойvikttur
данными добавил столбец
Excel по несколькимМожно сделать любой по дате, значит стоят не числа,Excel «Сортировка и фильтр».: У меня естьКак сделать автоматическую сортировкуЭто в файл автоматически. (строк может быть
отобрать нужные строки я зайду вЕСТЬ решение этой что были присвоены данные неудобные.: Сортировка по тексту с нумерацией строк столбцам и строкам» список. У нас не правильно написаны
а текст, например,Как сортировать с столбец
списка значений от КаренаHugo любое количество - и автоматически скопировать любую ячейку G задачи и с и все должноМикки В макросе — по алфавиту (хотя можно было тут. есть такая таблица. все или некоторые фамилии, наименование товара, помощью этой функции,
A минимального до максимального,Можно аналогично и
: А мне вариант главное, чтобы они их на отдельный и затем нажму
помощью формул. Его работать выдает ошибку на или есть числовые и через «строку»Таблицу Excel можноВыделяем столбец. Заходим даты. Как правильно т.д., то используем читайте в статье
с данными, который в котором эти мой код вызывать Карена нравится больше удовлетворяли требованиям по лист. Еще момент энтер. А хотелось KL приводил как-тоPrivate Sub Worksheet_Change(ByVal Range(«Что»).Select . Можно
«вкрапления», как в пойти). защитить от других на закладке «Главная» сортировать по датам, формулу массива. Таблица
excel-office.ru
Автоматическая сортировка списка
«Сортировка в Excel». постоянно пополняется. Как
значения появляются ДИНАМИЧНО.
— только названиеЕсли конечно всегда примеру 3 и — данные в бы без этого
на одном из
Target As Range) для особо непонятливых примере?2)Данные из столбца пользователей, установив пароль. -> «Сортировка и смотрите в статье такая. Здесь рассмотрим, как
мне сделать так, Подскажите пожалуйста формулу поменять. применим. 40 строк). Желаемый excel-файле периодически обновляются. лишнего движения, чтобы форумов, если найду,’если изменения в
(для меня :)Григорий
с нумерацией привязал Смотрите в статье фильтр», выбираем « «Сортировка по дате
Выделяем столбец и присваиваем настроить сортировку в чтобы в столбец или макрос. Главноеmaxx13Как сделать чтоб
результат (как должно Файл прикрепляю. Уточняю, автоматически производилась сортировка.
выложу, но формулы диапазоне A3:C11 ) по пунктам: Спасибо за участие к функции «наибольшее» «Пароль на Excel.Настраиваемая сортировка в Excel». ему имя. Как Excel с помощьюR чтобы сортировка была: Добрый день. подскажите, срабатывало на обновление быть) на Листе пользуюсь Ecxel 2003, +нужна сортировка не
там гигантские скажуIf Not Intersect(Target, что там манять :)
3)К данным находящимся Защита Excel».». В появившемся окнеСортировка в Excel это сделать, читайте формул. Эта сортировкакопировались записи из
автоматической. пожалуйста, возможен ли — зависит как 2. можно Excel 2007 по возрастанию а
сразу! Range(«A3:C11»)) Is Nothing
при переносе надоВ моем случае в столбце поГригорий в разделе «Порядок»проводится разными способами
в статье «Присвоить удобна тем, что столбца
Нужно просто отсортировать вариант, чтобы excel обновляете.HugoЮрий М
по убыванию.
)))
Then
(Кроме названия листов
будут числовые вкропления, которому необходима фильтрация: Всем здравствуйте. выбираем «Настраиваемый список». — функцией «Сортировка»,
имя в Excel при изменении данныхA по занятому месту
автоматом подставлял изМожно на третьем: Фильтр в T: roadtomoney, Вам, как_Boroda_Guest
’если выделили больше и диапазонов). Меняю при этом колличество прибавил данные изОписание:В разделе окна «Списки» формулами, т.д. Но
ячейке, диапазону, формуле» в столбце, произойдети тут же
список имён. таблицы 1 (выделена листе прописать формулу,
— выбираем «Статистика», новичку, скажу по: Так нужно?: одной ячейке, то и в самом буквенных и числовых столбца нумерации деленныеЕсть таблица в появится запись «Новый можно настроить сортировку тут. Мы присвоили автоматическая сортировка в
сортировались по возрастанию?Имя1 (столбец1) - красным цветом) в завязанную на первый,
копируем. Можно вручную, секрету: мало ктоPrivate Sub Worksheet_Change(ByVal Target
Микки выход листе и в
знаков может различаться. на 1 000 которой могут появляться список», выделяем его.
по своим условиям. имя «Фамилии».
Excel новых данных. То есть я 4 место (столбец2)
нужные сроки таблицы и по событию можно маросом.
захочет возиться с As Range)
: Я таки неIf Selection.Cells.Count > модуле.
Например 000 000 :)
и исчезать данные Переходим в правую Как сортировать функцией,В ячейке В1
Рассмотрим два способа добавляю новую запись
Имя2 — 2 2 (выделена желтым).
пересчёта запускать макрос.roadtomoney файлом в 510К.
On Error Resume понимаю , чем 1 Then Exit
vikttur Можешь показатьМО1 таким образом в
(прям волшебная какая-то
часть диалогового окна
читайте в статье
пишем такую формулу.
сортировки данных в
в
место
BobroEJ
Но не вполне
: Можно немного подробнее,
Ведь можно же
Next
мой вариант плох?
Sub
как по первым
МГБ12
случае появлении в таблица :)). и пишем наш «Сортировка в Excel».=ИНДЕКС(Фамилии;ПОИСКПОЗ(НАИМЕНЬШИЙ(СЧЁТЕСЛИ(Фамилии;» Для ввода таблице Excel сAИмя3 — 1: maxx13, вы там понятно — куда
пожалуйста. Как будет делать пример не
With Me Прекрасно работает сделайтеRange(«Что»).Select 3м буквам? Яи т.д. таблице одинаковых значенийЗадача: список через запятую. Как настроить автоматическую
формулы нажимаем сочетание
помощью формул.и в столбце
место что-то забыли приложить. копировать? Всегда в выглядеть макрос? наr1_ = .UsedRange.Rows.Count динамические диапазоны и’ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear д
planetaexcel.ru
Автоматическая сортировка в Excel (Формулы/Formulas)
Микки (а у меня
Так вот необходимо Получилось так.
сортировку в помощью клавиш «Ctrl» +
Первый способ.RИмя4 - 3
maxx13
A1?
Hugo
такое
If Not Intersect(Target,
не парьтесь или
ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«Название»), _Serge: Интересно почему не они целые) формула настроить автоматическую сортировкуНажимаем кнопку «Добавить» наш формул, смотрите в «Shift» + «Enter»,Сортировка вуже обновлённый отсортированный место.: сориroadtomoney: Sub tt() Withколичество строк. Да Range(«D1:F» & r1_)) засадите макрос наSortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
: {quote}{login=Григорий}{date=03.09.2009 03:13}{thema=}{post}Serge Для смогли ? Что
все равно получало по тексту а
список появился в статье "Сортировка в
п.ч. это формула
Excel по возрастанию.
список.Полосатый жираф аликbuchlotnik
: Копирование на соседний
Sheets(1) If .AutoFilterMode
и какие строки Is Nothing Then
кнопочку
ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("Столбец1"), _
сводной данные неудобные. Вам так сильно
сове наибольшее с
после по значению.
левой стороне окна.
Excel формулой" здесь.
массива. Копируем формулу
excelworld.ru
Автоматическая сортировка и копирование строк в excel
Сортируем с помощьюЕщё есть такой: На том же: так нужно? лист, всегда в Then .AutoFilter.Range.AutoFilter End считать «нужными» -With .Sort.SortFieldsstalberSortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormalПрикольно, я ещё мешает? небольшой погрешностью которая С настройкой отдельноНажимаем «ОК». Здесь жеСортировка списка в Excel. вниз по столбцу. функций «НАИМЕНЬШИЙ» или нюанс: в этих
месте — формулой200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ИНДЕКС(D$90:D$108;ПОИСКПОЗ($C17;$C$90:$C$108;0));»») A1 Вопрос в With With Sheets(1).UsedRange.Columns(20) пока только Вы.Clear: Использую данный код:With ActiveWorkbook.Worksheets(«Лист1»).Sort не встречал неудобныхvikttur потом округлялась и по значению проблем можно удалить ненужныйТаблица Excel сортирует Получилось так. «НАИБОЛЬШИЙ». столбцах строка 1 не получится. А
_Boroda_ том, что на
.AutoFilter Field:=1, Criteria1:=»Статистика» знаете. Как должен.Add Key:=Range(«G1:G» &Private Sub Worksheet_Change(ByVal.SetRange Range(«Что») данных ;): Вопрос был в как следствие исчезала. нет — использую список, предварительно выделив данные по определеннымЕсли предполагается добавлятьВ ячейке В5 пишем обычная, а начиная в другом столбце: Еще вариант первом листе данные .SpecialCells(xlCellTypeVisible).EntireRow.Copy Sheets(2).[a1] End выглядеть желаемый результат r1_), Order:=xlDescending Target As Range).Header = xlYesпрохожий следующем — как
4)Ну а дальше функцию «наибольший» а его. спискам. Мы можем строки в таблицу,
такую формулу. =НАИМЕНЬШИЙ(A:A;СТРОКА(A1)) со второй и — запросто. Заодно,200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ(($C17=$C$90:$C$108)*D$90:D$108)
динамические и меняются With Sheets(1).AutoFilter.Range.AutoFilter End — тоже никтоEnd WithOn Error Resume.MatchCase = False: А почему именно сортировать? комбинацией Индекс(Поискпоз вытаскивал
вот с текстом…..Теперь сортируем так:
сами создать свои то можно сделатьОбратите внимание! далее идёт группировка а по какойИ формат ячеек автоматически каждые 5 Sub не знает…With .Sort Next.Orientation = xlTopToBottom автоматическая? А нажатиемПо алфавиту можно, в новую таблицуТ.е. при обновлении
«Сортировка и фильтр» списки, по которым, динамический диапазон столбца
Хотя первая ячейка по 2 ячейки.
формуле считаются места?# ##0,00;; минут, а макросk61
roadtomoney.SetRange Range(«D1:G» &If Not Intersect(Target,.SortMethod = xlPinYin кнопки сложно?
но формулами по необходимые мне данные данных, в итоговой -> «Настраиваемая сортировка»
затем, будем сортировать А. Смотрите статью для сортировки находитсяkalbasiatkaAlexmaxx13 для обновления статистики: …: Спасибо. Сейчас исправлюсь) r1_) Range(«G:G»)) Is Nothing.ApplyМикки первым одной-двум буквам,Микки
таблице данные должны -> выбираем в данные. Эти списки «Чтобы размер таблицы в пятой строке
: Добавить и отсортировать.
: Копай в сторону: да, спасибо огромное.
приходится запускать вручную.roadtomoney
roadtomoney.Apply
ThenEnd With: Объясняю далее усложнение. А
planetaexcel.ru
Автоматическая сортировка (Формулы/Formulas)
: Добавил Вам автосортировку выстроиться в алфавитном разделе «Порядок» диалогового будут работать и Excel менялся автоматически». таблицы (А5), в А лучше к условного форматирования. Сортировку уже проще от
Можно сделать так,: Спасибо большое. Все: Прикладываю новый файл.
End WithRange(«G1»).Sort Key1:=Range(«G1»), _
End IfИспользуются 3 именованных если имеется текст
изменитн любое значение порядке с дополнительной
окна «Настраиваемый список».
в других книгах
Тогда формулу массива
формуле пишем ячейку своим темам файл не сделает, но 200 органов такое чтобы макрос запускался работает!!! Столько по
Проблема описана вEnd IfOrder1:=xlAscending, Header:=xlYes, _
End Sub диапазона на Листе с тремя-пятью одинаковыми? в 1 или сортировкой (в случае
Выделяем его, нажимаем Excel.
excelworld.ru
Автоматическая сортировка в excel 2010 ?
в столбце В А1. Копируем ячейку прикреплять (для наглядности хотя бы цветом свести 2 разных автоматически вместе с интернету бродил…HUGO - нем снизу) СутьEnd With
OrderCustom:=1, MatchCase:=False, _Excel-ok 1 (строго)
По числам (цифрам) 2 столбце, хотя
появления одинаковых названий) «ОК», ещё раз
Например, нам нужно нужно будет чуть
вниз по столбцу. примера), чтобы не
пометить можно при файла обновлением первого листа? ты лучший проблемы в том,End SubOrientation:=xlTopToBottom: Если решение этой
Если изменилось что тоже можно, но имена лучше динамические по данным в «ОК». рассортировать данные магазина дополнить функцией. Формулу Получилось так.
гадали люди в тех или иныхBobroEJHugoМожно еще один что необходимо, чтобыroadtomoney
Автоматическая сортировка
End If задачи с помощью либо в диапазоне нужно знать некоторые но писать лень таблице.Получилось так. по отделам (фамилии в ячейке В1В столбце С установили какой плоскости у условиях.:: Так ведь уже вопрос… Как сделать, копировались именно строки: Здравствуйте, уважаемые форумчане.End Sub формул. Его KL A3:C11 подробности — размещение,Гигорий
Буду благодарен заВ Excel можно сортировать сотрудников, товар, др.). напишем такую. формулу с функцией вас группировка ячеек.Шведов сергей
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕОШИБКА(ИНДЕКС(Таблица1;ПОИСКПОЗ($C17;ИНДЕКС(Таблица1;;1);0);D$16-3));»»;ИНДЕКС(Таблица1;ПОИСКПОЗ($C17;ИНДЕКС(Таблица1;;1);0);D$16-3)) написал — добавляете чтобы макрос автоматически с информацией, как В последующем вопросеНеудобство в том, приводил как-то нато выделяем диапазон наличие цифровых знаков
CyberForum.ru
: Спасибо за макрос,
Excel macros might not be as comprehensive as other automation tools, but the validity and efficiency of Excel VBA can’t be undermined. If you work in Excel and other Microsoft Office tools like Word and Access, you can’t go wrong with VBA and its capabilities.
MS Excel is a powerful tool that offers a ton of options to its users. From storing data to creating automated dashboards, you can do it all in Excel and its spreadsheets.
If you want to use VBA to automate your sorting responsibilities in Excel, give these efficient easy-to-apply macros a try.
Download a Dummy Dataset
For starters, you can download a dummy dataset to work on your Excel macro skills.
Rest assured, once you get the hang of these macros and better understand how things work, you can shift the code to fit your own spreadsheets for work or school.
You can download the dataset used in this article if you’d like to follow along.
Download: Excel Dataset
1. Sorting One Column Using Excel Macros
Use this simple code to sort a data column within an Excel spreadsheet. If you downloaded the dummy dataset, you can try sorting column E (Units Sold).
Open a new Excel file and save it with an Excel Macro-Enabled Workbook (.xlsm) workbook type. This file will store the macro to sort your data from another file.
You will be controlling your file(s) from the macro file, which will interact with your workbooks separately.
Enter the following code:
Sub sortwithheaders()Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1:P701").sort Key1:=Range("e1"), Order1:=xlAscending, Header:=xlYes
End Sub
Where:
- Key1: Define the column(s) that you want to sort
- Order1: Ordering method (ascending/descending)
- Header: If your content has headers, this option will remain as xlYes. Alternatively, select xlNo.
The range will consist of the starting cell and ending cell address so that everything is captured for sorting purposes. The result is that your entire data set will be sorted based on the data in column E.
2. Sorting Dynamic Data in a Single Column
There may be instances wherein your starting point is defined, but your endpoint is dynamic. In such a case, you can make your code dynamic so that it picks up the end of the range automatically.
To accommodate the change in data, use the code below:
Sub sortwithheaders()Workbooks("Financial Sample.xlsx").Sheets(1).Activate
Range("A1", Range("A1").End(xlDown)).sort Key1:=Range("e2"), Order1:=xlAscending, Header:=xlYes
End Sub
Where:
- End(xlDown): This function will auto-pick the last populated cell automatically
Note: If the formula encounters a blank cell within a column, it will consider the preceding cell as the end of the range.
3. Sorting Multiple Columns Together
There might be situations when you want to sort data in multiple columns in one go. To do so, you can use the following code to achieve your purpose:
Sub SortMultipleColumns()With Worksheets("Sheet1")
With .Cells(1, "A").CurrentRegion
.Cells.sort Key1:=.Range("B1"), Order1:=xlAscending, _
Key2:=.Range("E1"), Order2:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlYes
End With
End With
End Sub
4. Sorting Columns Across Multiple Sheets
When you’re dealing with multiple sheets, you might want to get your data ready to be put into a dashboard. One of the most important aspects of data preparation is sorting it, and getting the data arranged in a certain format to present to your stakeholders or clients.
One option is to cycle through each sheet manually, sort the required columns, and then proceed to the next step. Alternatively, why not let VBA do it for you?
The intent of the code below is to cycle through each available sheet in the workbook, and based on the columns specified, sort the available data.
Here’s how you can sort columns across multiple sheets:
Sub SortWS()
Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements. In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
End Sub
All the information starting with single quotes are VBA comments. These are not executed during the execution stage. However, every VBA comment you add is a meaningful addition to the code, as you can define the essence, functionality, and other relevant portions within the code sections.
5. Copying Sorted Data From One Sheet to Another
Imagine a situation where you want to sort the data and copy the whole dataset (or parts thereof) into a newly added sheet. In such cases, you can use the below code to perform the task at hand:
Sub SortWS()Dim ws As Worksheet
'Activate the intended worksheet
Workbooks("Financial Sample.xlsx").Activate
'Cycle through each individual worksheet automatically using for loop
For Each ws In ActiveWorkbook.Sheets
'activate each individual worksheet
ws.Activate
'Define the range and then sort the column basis your requirements.
'In this case, only one column in being sorted.
Range("A1", Range("p1").End(xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
'Command used to cycle to the next worksheet, once the previous worksheet has been sorted
Next ws
'Create a new worksheet within the workbook to store the new data
ActiveWorkbook.Sheets.Add.Name = "Results"
'Copy paste the sorted data into the newly added sheet
Sheets("Sheet1").Range("A1:p701").Copy Destination:=Sheets("Results").Range("a1")
End Sub
The above code will sort the values in column E, add a new sheet Results into the existing workbook, and paste the sorted results in cell A1.
Creating Sorting Macros in Excel
Excel VBA is a nifty language that can save you a lot of time and effort. By using VBA macros, you can create extensive dashboards, easily sort data with a few clicks, and perform different functions with ease.
Luckily, Excel’s functionality doesn’t end with macros. Check out some tips and tricks to become a more efficient Excel user.