/ / Keresse meg a második legmagasabb értéket az Excel VBA-ban

Keresse meg a második legmagasabb értéket az Excel VBA-ban

Az alábbiakban egy programot nézünk be Excel VBA hogy megtalálja a második legmagasabb értéket.

Helyzet:

Keresse meg a második legmagasabb értéket az Excel VBA-ban

1. Először két Range objektumot és két Double típusú változót deklarálunk. Hívjuk a gamma objektumokat rng és cell. Egy kettős változó, amelyet legmagasabb értéknek nevezünk, és egy kettős változót nevezzünk secondHighestValue-nak.

Dim rng As Range, cell As Range
Dim highestValue As Double, secondHighestValue As Double

2. Inicializáljuk a Range objektum rng értékét a kiválasztott tartomány és a két dupla változó között, 0 értékkel.

Set rng = Selection
highestValue = 0
secondHighestValue = 0

3. Először meg akarjuk találni a legmagasabb értéket. Minden egyes véletlenszerűen kiválasztott tartományban szeretnénk ellenőrizni (ez a tartomány bármely méretű lehet). Az Excel VBA programban használhatja a For Every Next hurot ehhez. Adja hozzá a következő kódsorokat:

"Find Highest Value
For Each cell In rng

Next cell

Jegyzet: A rng és a cellák véletlenszerűen vannak kiválasztva, bármilyen nevet használhat. Ne feledje, hogy ezekre a nevekre utal a kód többi részében. A zöld vonal egy megjegyzés, és csak itt adódik hozzá, hogy tájékoztasson erről a kódról.

4. Ellenõrizzük az egyes cellákat ebben a tartományban. Ha magasabb, mint a legmagasabb érték, akkor az értéket a legmagasabb értékű változóhoz írjuk be. Adjuk hozzá a következő kódot a hurokhoz.

If cell.Value > highestValue Then highestValue = cell.Value

Megjegyzés: az első érték mindig magasabb, mint a legmagasabb érték, mert a legmagasabb érték kezdő értéke 0.

Másodszor, meg akarjuk találni a második legmagasabb értéket. Hozzáadunk egy másik For Every Next hurkot.

"Find Second Highest Value
For Each cell In rng

Next cell

6. Ismét ellenőrizzük az egyes cellákat a kiválasztott tartományban. Ha magasabb, mint a secondHighestValue és alacsonyabb, mint a legmagasabb érték, akkor az értéket a secondHighestValue változóhoz írjuk be. Adjuk hozzá a következő kódot a hurokhoz.

If cell.Value > secondHighestValue And cell.Value < highestValue Then secondHighestValue = cell.Value

7. Végül a második legmagasabb értéket megjelenítjük egy MsgBox segítségével.

MsgBox "Second Highest Value is " & secondHighestValue

8. Helyezze a makrót egy parancsgombra, válassza ki a számokat, és kattintson a parancs gombra.

Eredmény:

Keresse meg a második legmagasabb értékű eredményt

Szintén olvasható: