Žemiau apžvelgsime programą Excel VBA kad randa antrą didžiausią vertę .
Situacija:
„Excel“ skaičiuoja kelis kriterijus tame pačiame stulpelyje
1. Pirma, mes deklaruojame du diapazono objektus ir du kintamuosius tipo Double. Range objektus vadiname rng ir cell. Vieną dvigubą kintamąjį vadiname didžiausia verte, o kitą dvigubą kintamąjį vadiname antruoju aukščiausiu.
Nė vienasrngKaipDiapazonas, ląstelėKaipdiapazonasNė vienasdidžiausia vertėKaip Dvigubas, secondHighestValueKaip Dvigubas
2. Mes inicijuojame diapazono objektą rng pasirinktu diapazonu ir dviem dvigubais kintamaisiais, kurių vertė 0.
Nustatytirng = pasirinkimas
didžiausia vertė = 0
secondHighestValue = 0
3. Pirmiausia norime rasti didžiausią vertę. Norime patikrinti kiekvieną langelį atsitiktinai pasirinktame diapazone (šis diapazonas gali būti bet kokio dydžio). „Excel VBA“ tam galite naudoti ciklą „Kiekvienam kitam“. Pridėkite šias kodo eilutes:
'Raskite didžiausią vertęDėl KiekvienasląstelėInrng
Kitasląstelė
Pastaba: rng ir ląstelė čia pasirenkami atsitiktinai, galite naudoti bet kokius pavadinimus. Nepamirškite nurodyti šių pavadinimų likusioje kodo dalyje. Žalia linija yra komentaras ir čia pridedama tik siekiant suteikti informacijos apie šį kodą.
4. Tikriname kiekvieną šio diapazono langelį. Jei jis didesnis už didžiausią vertę, reikšmę įrašome į kintamąjį didžiausią vertę. Pridėkite šią kodo eilutę prie kilpos.
Jeiląstelė. Vertė> didžiausia vertėTadadidžiausia vertė = ląstelė. vertėPastaba: pirmoji vertė visada yra didesnė už didžiausią vertę, nes pradinė aukščiausios vertės vertė yra 0.
5. Antra, norime rasti antrą didžiausią vertę. Pridedame dar vieną už kiekvieną kitą kilpą.
kodėl mes naudojame pivot lentelę„Raskite antrą didžiausią vertę
Dėl KiekvienasląstelėInrng
Kitasląstelė
6. Dar kartą patikriname kiekvieną pasirinkto diapazono langelį. Jei jis yra didesnis nei secondHighestValue ir mažesnis už didžiausią, tai reikšmę įrašome į kintamąjį secondHighestValue. Prie kilpos pridėkite šią kodo eilutę.
Jeicell.Value> secondHighestValueIrląstelė.Vertė7. Galiausiai, naudojant „MsgBox“, rodome antrą didžiausią vertę.
„MsgBox“ antra didžiausia vertė yra „& secondHighestValue“8. Įdėkite makrokomandą į komandų mygtuką, pasirinkite skaičius ir spustelėkite komandos mygtuką.
Rezultatas:
Eiti į kitą skyrių: Kilpa