excel-vba
Genoemde bereiken
Zoeken…
Invoering
Definieer een benoemd bereik
Door benoemde bereiken te gebruiken, kunt u de betekenis van de inhoud van een cel (len) beschrijven en deze gedefinieerde naam gebruiken in plaats van een echt celadres.
Formule =A5*B5
kan bijvoorbeeld worden vervangen door =Width*Height
om de formule veel gemakkelijker te lezen en te begrijpen.
Als u een nieuw benoemd bereik wilt definiëren, selecteert u een of meer cellen die u een naam wilt geven en typt u vervolgens een nieuwe naam in het vak Naam naast de formulebalk.
Opmerking: Benoemde bereiken zijn standaard ingesteld op globaal bereik, wat betekent dat ze overal in de werkmap toegankelijk zijn. Oudere versies van Excel staan dubbele namen toe, dus zorg ervoor dat dubbele namen van wereldwijde omvang worden voorkomen, anders zijn de resultaten onvoorspelbaar. Gebruik Naambeheer op het tabblad Formules om het bereik te wijzigen.
Benoemde bereiken gebruiken in VBA
Maak een nieuw benoemd bereik met de naam 'MyRange' toegewezen aan cel A1
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Verwijder het gedefinieerde benoemde bereik op naam
ThisWorkbook.Names("MyRange").Delete
Toegang op naam bereik op naam
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Toegang tot een benoemd bereik met een snelkoppeling
Net als elke andere range , kan benoemde bereiken rechtstreeks worden benaderd met door middel van een snelkoppeling notatie die niet over een vereist Range
object moet worden gemaakt. De drie regels uit het bovenstaande codefragment kunnen worden vervangen door een enkele regel:
Call MsgBox("Width = " & [MyRange])
Opmerking: de standaardeigenschap voor een bereik is de waarde, dus
[MyRange]
is hetzelfde als[MyRange].Value
U kunt ook methoden in het bereik oproepen. Het volgende selecteert MyRange
:
[MyRange].Select
Opmerking: een waarschuwing is dat de sneltoetsnotatie niet werkt met woorden die elders in de VBA-bibliotheek worden gebruikt. Een bereik met de naam
Width
zou bijvoorbeeld niet toegankelijk zijn als[Width]
maar zou werken zoals verwacht als het toegankelijk is viaThisWorkbook.Worksheets("Sheet1").Range("Width")
Beheer benoemde bereiken met Name Manager
Tabblad Formules> Groep gedefinieerde namen> Knop Naambeheer
Met Named Manager kunt u:
- Naam maken of wijzigen
- Celverwijzing maken of wijzigen
- Scope maken of wijzigen
- Verwijder bestaand benoemd bereik
Named Manager biedt een handig overzicht voor verbroken koppelingen.
Genoemde bereikmatrices
Voorbeeldblad
Code
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Resultaat