Het vinden van het adres van de laagste waarde in een Range

Bij het schrijven van een macro, kunt u de laagste waarde in een reeks cellen te vinden met behulp van de WorksheetFunction methode om de MIN werkblad functie van toepassing. Mogelijk moet echter niet alleen de laagste waarde in het bereik, maar ook het adres van de eerste cel die deze waarde bevat vinden.

Een eenvoudige manier is om gewoon stap voor stap door het bereik dat u wilt onderzoeken en af ​​te leiden zowel de laagste waarde en het adres van de cel wordt onderzocht, zoals in het volgende:

Functie FindLowestAddr (PRNG als Waaier) als Koord
Application.Volatile
MinVal = pRng.Cells (1) .Value
MinAddr = pRng.Cells (1) .Address
Voor elke c in PRNG
Als c.Value <MinVal Dan
MinVal = c.Value
MinAddr = c.Address
End If
Volgende c
FindLowestAddr = MinAddr
End Function

Merk op dat deze aanpak niet vertrouwen op de MIN werkblad functie helemaal. Er is een nadeel aan het, echter, het maakt geen onderscheid tussen cellen die numerieke waarden en die dat niet doen bevatten. Met andere woorden, als het bereik doorgegeven aan de functie bevat een lege cel, wordt die cel als een nulwaarde, die heel goed de laagste waarde in het bereik kunnen zijn.

Een manier om dit is om te vertrouwen op werkblad functies vanuit de macro. De volgende macro wordt zowel de MIN en VERGELIJKEN blad functies om de locatie van de minimumwaarde en de index (offset) van die cel binnen het bereik bepalen.

Functie GetAddr (RNG als Waaier) als Koord
Dim DBMIN As Double
Dim Lindex As Long
Dim sAddress als Koord

Application.Volatile
Met Application.WorksheetFunction
DMIN = .Min (RNG)
Lindex = .Match (Dmin, RNG, 0)
End With
GetAddr = rng.Cells (Lindex) .Address
End Function

Opgemerkt moet worden dat als je gebruik maakt van de macro uitsluitend naar het adres te ontdekken, omdat je dacht dat er was geen manier om de gewenste informatie te verkrijgen zonder dat de macro, dan kunt u weg met de macro doen volledig door het gebruik van een werkblad formule. Bijvoorbeeld, als je wilt om het adres van de laagst gewaardeerde cel in het benoemde bereik mijnBereik te bepalen, kunt u gebruik maken van de volgende:

= ADRES (RIJ (mijnBereik) + MATCH (MIN (mijnBereik), mijnBereik, 0) -1, COLUMN (mijnBereik))

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (7140) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) vinden hier: Het vinden van het adres van de laagste waarde in een Range .


© 2019 Quilcedacarvers.com | Contact us: webmaster# quilcedacarvers.com