In deze zelfstudie wordt uitgelegd hoe u de huidige regio in VBA kunt gebruiken.
De HuidigeRegio eigenschap in VBA is een manier om alle cellen te selecteren die zich in een bereik bevinden waarmee u mogelijk wilt werken. Zolang de cellen binnen het bereik allemaal opeenvolgend zijn of elkaar ‘raken’, HuidigeRegio zal elke cel in de regio selecteren.
Huidige regio-syntaxis
De syntaxis is heel eenvoudig:
1 | Bereik ("E11"). Huidige regio. Selecteer |
waar u de cel zou specificeren waarvan u de huidige regio wilt selecteren en gebruik vervolgens de HuidigeRegio.Selecteer eigenschap om het bereik van cellen te selecteren.
De huidige regio verkrijgen
Beschouw het volgende werkblad.
de volgende subprocedure zou alle cellen in de database selecteren:
1234567 | Sub ZoekHuidigeRegio()Dim rng als bereik'stel het bereik in op cel E11'Stel rng = Bereik ("E11") in'selecteer de huidige regio'rng.HuidigeRegio.SelecterenEinde sub |
Als we de routine uitvoeren, worden alle cellen in de HuidigeRegio van cel E11 wordt geselecteerd.
Als we de inhoud van de aangrenzende cellen verwijderen en de routine opnieuw uitvoeren, wordt het volgende geselecteerd als de huidige regio.
Als we echter nog meer gegevens verwijderen, kunnen we eindigen met het onderstaande voorbeeld voor de huidige regio van cel E11.
Als we informatie in D13 stoppen, krijgen we het volgende:
De HuidigeRegio daarom geeft een ander terug bereik object gedefinieerd door de kleinste combinatie van bezette kolommen en rijen die het door u opgegeven bereik omringen.
De rijen en kolommen in de huidige regio tellen
We kunnen gebruiken HuidigeRegio om de rijen en kolommen te tellen.
12345678910111213 | Sub ZoekHuidigeRegio()Dim rng als bereikDim iRw als geheel getalDim iCol als geheel getal'stel het bereik in'Stel rng = Bereik ("E11") in'tel de rijen'iRw = rng.CurrentRegion.Rows.Count'tel de kolommen'iCol = rng.CurrentRegion.Columns.Count'toon het resultaat in een berichtvenster'MsgBox ("We hebben " & iRw & " rijen en " & iCol & " kolommen in onze huidige regio")Einde sub |
Als we de procedure uitvoeren, verschijnt het volgende berichtvenster.
De huidige regio wissen
We kunnen ook de huidige regio-eigenschap gebruiken om het cellenbereik te wissen.
123456 | Sub ClearCurrentRegion()Dim rng als bereik'stel het bereik in'Stel rng = Bereik ("E11") inrng.CurrentRegion.ClearEinde sub |
De huidige regio toewijzen aan een variabele
We kunnen ook de hele huidige regio toewijzen aan een bereikvariabele en vervolgens die bereikvariabele gebruiken om de cellen te manipuleren - of het nu gaat om het opmaken van de cellen, het sorteren van de cellen, enz …
12345678910 | Sub AssignCurrentRegionToVariable()Dim rng als bereik'stel het bereik in op de huidige regio van E11'Stel rng = Bereik ("E11") in. Huidige regio'kleur de achtergrond en tekst'rng.Interieur.Patroon = xlSolidrng.Interieur.Kleur = 65535rng.Font.Bold = Truerng.Lettertype Kleur = -16776961Einde sub |
Als we de bovenstaande procedure uitvoeren, krijgen we een werkblad zoals hieronder weergegeven!
De start- en eindcellen in de huidige regio krijgen
Met iets gecompliceerdere code kunnen we de eerste cel en de laatste cel in een huidige regio krijgen.
123456789101112131415161718 | Sub GetStartAndEndCells()Dim rng als bereikDim iRw als geheel getalDim iCol als geheel getalDim iColStart, iColEnd, iRwStart, iRwEnd As String'stel de bereikvariabele in op de huidige regio van E11'Stel rng = Bereik ("E11") in. Huidige regio'stel de startkolom voor het bereik in'iColStart = rng.Kolom'haal de eindkolom voor het bereik'iColEnd = iColStart + (rng.Columns.Count - 1)'haal de startrij voor het bereik'iRwStart = rng.Rij'haal de laatste rij voor het bereik'iRwEnd = iRwStart + (rng.Rows.Count - 1)'toon het adres van de begin- en eindrijen en kolommen in een berichtvenster'MsgBox ("Het bereik begint bij " & Cells(iRwStart, iColStart).Address & " en eindigt bij " & Cells(iRwEnd, iColEnd).Address)Einde sub |
Wanneer we de bovenstaande code uitvoeren, verschijnt het volgende berichtvenster: