Нижче ми розглянемо програму в Excel VBA що знаходить друге за значенням значення.
Ситуація:
1. Спочатку ми оголошуємо два об’єкти Range та дві змінні типу Double. Ми називаємо об'єкти діапазону rng і клітиною. Одну подвійну змінну ми називаємо najvišшоюValue, а одну подвійну змінну - другоюHighestValue.
Dim rng As Range, клітинка As Range
Затемнити найвище значення як подвійне, друге - найвище значення як подвійне
2. Ми ініціалізуємо об'єкт Range з вибраним діапазоном та двома змінними Double зі значенням 0.
Встановити rng = Вибір
najvišше значення = 0
secondHighestValue = 0
3. По -перше, ми хочемо знайти найвище значення. Ми хочемо перевірити кожну клітинку у випадково вибраному діапазоні (цей діапазон може бути будь -якого розміру). У Excel VBA для цього можна використовувати цикл For Every Next. Додайте такі рядки коду:
'Знайдіть найвищу цінність
Для кожної клітинки В rng
Наступна клітина
Примітка: тут rng і комірка вибираються випадковим чином, ви можете використовувати будь -які імена. Не забувайте посилатися на ці імена в решті коду. Зелена лінія є коментарем і додається лише тут, щоб надати інформацію про цей фрагмент коду.
4. Ми перевіряємо кожну клітинку в цьому діапазоні. Якщо воно вище найвищого значення, ми записуємо значення до змінної найвищої. Додайте наступний рядок коду до циклу.
Якщо cell.Value> mostValue То найвища цінність = cell.Value
Примітка: перше значення завжди вище найвищого значення, оскільки початкове значення найвищого значення дорівнює 0.
5. По -друге, ми хочемо знайти друге за значенням значення. Додаємо ще один цикл For Every Next.
'Знайдіть друге найвище значення
Для кожної клітинки В rng
Наступна клітина
6. Ми знову перевіряємо кожну клітинку у вибраному діапазоні. Якщо вона вища за secondHighestValue і нижча за najvišшуValue, ми записуємо значення до змінної secondHighestValue. Додайте наступний рядок коду до циклу.
Якщо cell.Value> secondHighestValue І cell.Value <mostValue Тоді secondHighestValue = cell.Value
7. Нарешті, ми відображаємо друге найвище значення за допомогою MsgBox.
MsgBox "Друге найвище значення" & secondHighestValue
8. Помістіть свій макрос у командну кнопку, виберіть цифри та натисніть на командну кнопку.
Результат: