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