Случайно сортиране на данни в Excel VBA - Лесни Excel макроси

Съдържание

По -долу ще разгледаме програма в Excel VBA че произволно сортира данни (в този пример произволно сортира имена).

Ситуация:

1. Първо, декларираме четири променливи. Една променлива от тип String, която наричаме TempString, една променлива от тип Integer, която наричаме TempInteger, една променлива от тип Integer, която наричаме i, и една променлива от тип Integer, която наричаме j.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. Записваме 5 случайни числа в колона В (по едно за всяко име). За това използваме функцията на работния лист RandBetween.

За i = 1 до 5
Клетки (i, 2) .Value = Работен лист Функция.RandBetween (0, 1000)
Следва i

Резултат до момента:

Ще използваме числата до всяко име, за да сортираме имената. Името с най -ниското число първо, името с второто най -ниско число, второ и т.н.

3. Стартираме Double Loop.

За i = 1 до 5
За j = i + 1 до 5

4. Добавете следния код:

Ако Cells (j, 2) .Value <Cells (i, 2) .Value Тогава

Пример: за i = 1 и j = 2 се сравняват Уенди и Ричард. Тъй като Ричард има по -малък брой, разменихме Уенди и Ричард. Сега Ричард е на първа позиция. За i = 1 и j = 3 се сравняват Ричард и Джост. Joost има по -голям номер, така че нищо не се случва. По този начин Excel VBA получава името с най -малкото число на първата позиция. За i = 2 Excel VBA получава името с второто най -ниско число на втората позиция и т.н.

5. Ако е вярно, сменяме имената.

tempString = Клетки (i, 1)
Клетки (i, 1). Стойност = Клетки (j, 1)
Клетки (j, 1) .Value = tempString

6. И разместваме числата.

tempInteger = Клетки (i, 2)
Клетки (i, 2). Стойност = Клетки (j, 2)
Клетки (j, 2). Значение = tempInteger

7. Не забравяйте да затворите оператора If.

Край Ако

8. Не забравяйте да затворите двата контура.

 Следващ j
Следва i

9. Тествайте програмата.

Резултат:

Забележка: можете да добавите ред, който изтрива числата в колона В. Още по -хубаво е да поставите номерата на всяко име в масив, така че в работния ви лист да не се поставят числа. За илюстративна цел обаче сме избрали да поставим стойностите на листа.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave