Ниже мы рассмотрим программу в Excel VBA, которая сортирует числа.

Ситуация:

Sort Numbers Example

Поместите командную кнопку на листе и добавьте строки следующего кода:

  1. Во-первых, мы объявляем три переменные типа Integer и один объект Range.

Dim i As Integer, j As Integer, temp As Integer, rng As Range
  1. Мы инициализируем объект ГСЧ Range с числами в столбце A. Мы используем ссылке: / VBA-примеры-CurrentRegion [CurrentRegion] свойство для этого.

CurrentRegion полезно, когда мы не знаем точных границ диапазона заранее (мы хотим эту программу для работы на 9 номеров, но и для 90 номеров).

Set rng = Range("A1").CurrentRegion
  1. Мы начинаем два для следующих петель.

For i = 1 To rng.Count

For j = i + 1 To rng.Count

Объяснение: rng.Count равно 9, так что первые две строки кода, чтобы уменьшить Для I = от 1 до 9, и при = + 1 до 9. Для I = 1, J = 2, 3, …​, 8 и 9 проверяются.

  1. Для сортировки чисел должным образом, мы сравниваем первое число со следующим номером. Если следующий номер меньше, поменять местами цифры. Добавьте следующее заявление If Then.

If rng.Cells(j) < rng.Cells(i) Then

End If

Если приведенное выше утверждение верно, то поменять местами цифры.

Например: I = 1 и J = 2, число 2 и 10 сравниваются. Данное заявление не соответствует действительности. Таким образом, нет необходимости менять число. Excel VBA приращений J на ​​1 и повторяет строки кода для я не = 1 и J = 3. Вы можете легко видеть, что 5 больше, чем 2, так до сих пор нет необходимости поменять номера. Мы получаем тот же результат для j = 4, J = 5 и у = 6. Когда мы приходим к J = 7, приведенное выше утверждение верно, так как 1 меньше 2.

  1. Мы ссылка: / VBA-примеры-своп-значение [своп] число. Мы временно сохранить один номер для температуры, так что Excel VBA может поменять число правильно. Добавьте следующие строки кода в операторе If.

'swap numbers

temp = rng.Cells(i)

rng.Cells(i) = rng.Cells(j)

rng.Cells(j) = temp
  1. Закрывает второй для следующего цикла (за пределами если заявления).

Next j

Для я = 1 и j = 7, Excel VBA местами цифры. Это означает, что мы получаем 1 в первом положении и 2 в положении 7. Теперь, когда мы имеем 1 в первом положении, мы будем сравнивать это значение с 5 (для j = 8) и 4 (для J = 9). Там нет необходимости поменять номера (1 является наименьшим числом).

Таким образом, Excel VBA получает (при г = 1) наименьшее число в первой позиции. Для того, чтобы получить второе наименьшее число во втором положении, Excel VBA повторяет те же самые шаги для я = 2. Для того, чтобы получить третий наименьшее число в третьей позиции, Excel VBA повторяет те же самые шаги для I = 3, и т.д.

  1. Закройте первый Для следующего цикла (вне если заявление).

Next i
  1. Проверьте свою программу.

Результат:

Sort Numbers in Excel VBA