Персонализираното сортиране в Excel е много полезна функция. В тази статия ще говорим за това как автоматично да актуализирате персонализирано сортиране в диапазон с помощта на Excel VBA.
Когато използвате персонализираното сортиране, ще откриете, че това е невероятна функция в Excel. Ако обаче използвате тази функция често, може да откриете и проблем. Ще сортирате в диапазон с определени данни и информация. Когато добавите допълнителни данни и информация в диапазона, редът в диапазона няма да се промени автоматично. Изображението по-долу показва пример за такова състояние.
Когато добавите нов набор от данни в диапазона, той няма да промени ранга автоматично. Ако все пак искате да сортирате този по-голям диапазон с нови данни, зададени по същите критерии, трябва да изпълните процеса на персонализирано сортиране отново. Можете да видите, че това е много обезпокоително, особено когато трябва постоянно да актуализирате данните и информацията в работния лист. Всеки път, когато добавяте нова информация в диапазона, трябва да сортирате отново. За да разрешите този проблем и да завършите бързо задачата си, можете да продължите да четете тази статия.
Запис на макрос
Когато критериите за персонализирано сортиране са много сложни, трудно ще напишете директно кодовете на VBA. По този начин сега можете първо да запишете макрос. И кодовете в този макрос могат да се използват в други макроси. Процесът на запис на кодове е много лесен.
- Преди да запишете макрос, трябва да добавите раздела на VBA в лентата. Тук щракнете с десния бутон върху който и да е раздел в лентата.
- И след това изберете „Персонализиране на лентата“ в менюто.
- Сега в прозореца „Опции на Excel“ проверете опцията „Разработчик“ в списъка на „Основни раздели“.
- След това щракнете върху „OK“ в прозореца. Следователно сте добавили раздела в лентата.
- Сега ще се върнете към работния лист. Щракнете върху раздела „Програмист“, който сте добавили.
- И след това щракнете върху бутона „Record Macro“ в лентата с инструменти. Така ще се появи прозорецът „Record Macro“.
От друга страна, можете също да щракнете върху малкия бутон в долната част на работния лист, за да замените горните 6 стъпки.
- Сега в прозореца „Запис на макрос“ въведете името в първото текстово поле. Задайте клавиш за бърз достъп, ако имате нужда. И след това добавете описанието според вашите нужди.
- След това щракнете върху „OK“. По този начин макросът започва да записва всяка ваша операция.
- Изберете диапазона, който трябва да сортирате в работния лист.
- Щракнете върху раздела „Начало“.
- И след това щракнете върху бутона „Сортиране и филтриране“ в лентата.
- В падащия списък изберете опцията „Персонално сортиране“.
- В прозореца „Сортиране“ задайте критериите според вашите нужди. Всички действия ще бъдат записани в макроса.
Когато записвате макрос, не правете допълнителни стъпки. В противен случай тези стъпки също ще бъдат записани. И това ще създаде проблеми в следващата част.
- След като завършите настройката в прозореца „Сортиране“, щракнете върху „OK“, за да запазите настройките.
- Сега щракнете отново върху раздела „Програмист“ в лентата.
- И след това щракнете върху бутона “Stop Recording”. Когато работният лист е в състояние на запис на макроси, бутонът ще се промени в „Stop Recording“.
Можете също да щракнете върху бутона в долната част на работния лист, за да спрете записа на макроса. По този начин завършихте записа. Всички критерии за сортиране са запазени в Macro 1.
Използвайте Excel VBA макроси
В тази част ще ви покажем как да използвате макросите на VBA за актуализиране на персонализирано сортиране във вашия работен лист. И вие също ще използвате записаните макроси в тази част.
- Щракнете върху раздела „Програмист“ в лентата.
- И след това щракнете върху бутона „Visual Basic“ в лентата с инструменти. Вместо това можете да натиснете бутона „Alt + F11“ на клавиатурата, за да замените 2-те стъпки.
- В редактора на Visual Basic щракнете двукратно върху листа в областта „VBAProject“. В този лист трябва да актуализирате персонализирано сортиране. И във вашия действителен файл трябва да щракнете два пъти върху съответния лист.
- Сега въведете следните кодове в областта.
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
- И след това въведете следните кодове между горните две изречения на VBA.
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
End If
Тук се изчислява обхватът. За обема на продажбите ще има 12 месеца и заедно с първия ред на заглавката въвеждаме диапазона „A1: C13“. Можете също така да въведете диапазона в кодовете според вашия действителен работен лист.
- В тази стъпка отворете модул 1 в редактора. Кодовете в този модул са процес на персонализирано сортиране, който сте направили по-рано. Виждате, че използването на функцията за запис на макроси може да ви спести много време.
- Сега копирайте основната част в този модул.
- След това щракнете двукратно върху целевия лист в частта „VBAProject“.
- След това поставете кодовете в IF-END IF кодовете.
- И след това променете диапазона в кодовете според вашите нужди. Записаният макрос е малко сложен и излишен. Можете също да го модифицирате според вашите нужди. Следователно, пълните кодове на VBA ще бъдат така:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
With 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
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 в кодовете. По този начин ще бъде по-ясно от записания резултат. Ако имате други изисквания, можете също да го промените според действителните си нужди. Трябва да бъдете внимателни, когато модифицирате кодовете. В противен случай ще получите грешен резултат в работния лист.
- Сега завършихте кодовете на VBA в редактора. Можете да се върнете на работния лист и да тествате резултата. Когато добавите следващия месец и съответните числа в диапазона, персонализираното сортиране ще се опресни автоматично.
Следователно, никога няма да се налага ръчно да актуализирате персонализираното сортиране всеки път, когато въвеждате нови елементи в целевия диапазон. От друга страна, трябва да запазите тази работна книга като Excel файл с активирани макроси. В противен случай ще загубите кодовете, ако я запазите като обикновен файл.
Ще оказваме помощ на жертвите на корупция в Excel
Всички знаем, че Excel е много мощен и може да ви помогне да завършите работата си бързо и лесно. Но приложението Excel все още далеч не е перфектно. Понякога Excel ще се повреди поради много различни причини. След като Excel се повреди, няма да можете да завършите задачите си от това приложение. За да работите по-добре, ще трябва да го поправите възможно най-скоро.
Нашата компания работи в областта на възстановяването в продължение на много години, особено възстановяването на Excel. Затова можете да се обърнете за помощ към нашия технически персонал. С дългогодишен опит можем лесно да разберем причината, която причинява щети на вашите файлове. И да ви помогна по-добре поправете повредата на файла xlsx в Excel, разработихме инструмент на трета страна. Този инструмент е много лесен за манипулиране и не е нужно да се притеснявате за проблема с поверителността.
Въведение на автора:
Ана Ма е експерт по възстановяване на данни в DataNumen, Inc., която е световен лидер в технологиите за възстановяване на данни, включително поправяне на грешка в Word docx и outlook софтуерни продукти за ремонт. За повече информация посетете WWW.datanumen.com









