Tento tutoriál vysvětlí, jak používat aktuální oblast ve VBA.
The Aktuální region property in VBA is a way to select all the cells that are contained within a Range that you might want to work with. Dokud jsou buňky v dosahu po sobě jdoucí nebo se navzájem „dotýkají“, Aktuální region vybere každou buňku v oblasti.
Syntaxe aktuálního regionu
Syntaxe je velmi jednoduchá:
1 | Rozsah („E11“). CurrentRegion. Vyberte |
kde byste určili buňku, jejíž aktuální oblast chcete vybrat, a poté použijte CurrentRegion.Select vlastnost vyberte Rozsah buněk.
Získání aktuální oblasti
Zvažte následující list.
následující dílčí postup by vybral všechny buňky v databázi
1234567 | Sub FindCurrentRegion ()Dim rng As Range'nastavte rozsah na Cell E11Nastavit rng = rozsah ("E11")'vyberte aktuální regionrng.CurrentRegion.SelectEnd Sub |
Pokud spustíme rutinu, všechny buňky v Aktuální region bude vybrána buňka E11.
Pokud odstraníme obsah sousedních buněk a znovu spustíme rutinu, jako aktuální oblast bude vybráno následující.
Pokud však odstraníme ještě více dat, můžeme skončit s níže uvedeným příkladem pro aktuální oblast buňky E11.
Když vložíme informace do D13, skončíme s následujícím:
The Aktuální region proto vrací další rozsah objekt definovaný nejmenší kombinací obsazených sloupců a řádků, které obklopují rozsah, který jste zadali.
Počítání řádků a sloupců v aktuální oblasti
Můžeme použít Aktuální region počítat řádky a sloupce.
12345678910111213 | Sub FindCurrentRegion ()Dim rng As RangeDim iRw As IntegerDim iCol jako celé číslo'nastavit rozsahNastavit rng = rozsah ("E11")“spočítejte řádkyiRw = rng.CurrentRegion.Rows.Count“spočítejte sloupceiCol = rng.CurrentRegion.Columns.Count'zobrazit výsledek ve zprávě.'MsgBox ("Máme řádky" & iRw & "a sloupce" & iCol & "v naší aktuální oblasti")End Sub |
Pokud spustíme postup, zobrazí se následující okno se zprávou.
Vymazání aktuální oblasti
Můžeme také použít vlastnost aktuální oblasti k vymazání rozsahu buněk.
123456 | Sub ClearCurrentRegion ()Dim rng As Range'nastavit rozsahNastavit rng = rozsah ("E11")rng.CurrentRegion.ClearEnd Sub |
Přiřazení aktuální oblasti proměnné
Můžeme také přiřadit celou aktuální oblast proměnné rozsahu a poté pomocí této proměnné rozsahu manipulovat s buňkami - ať už jde o formátování buněk, třídění buněk atd …
12345678910 | Sub AssignCurrentRegionToVariable ()Dim rng As Range'nastavte rozsah na aktuální oblast E11Nastavit rng = rozsah ("E11"). CurrentRegion'vybarvi pozadí a textrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Truerng.Font.Color = -16776961End Sub |
Pokud spustíme výše uvedený postup, skončíme s pracovním listem, jak je uvedeno níže!
Získání počátečních a koncových buněk v aktuální oblasti
S mírně komplikovanějším kódem můžeme získat první buňku a poslední buňku v aktuální oblasti.
123456789101112131415161718 | Sub GetStartAndEndCells ()Dim rng As RangeDim iRw As IntegerDim iCol jako celé čísloDim iColStart, iColEnd, iRwStart, iRwEnd jako řetězec'nastavte proměnnou rozsahu na aktuální oblast E11.'Nastavit rng = rozsah ("E11"). CurrentRegion'nastavte počáteční sloupec pro rozsah.'iColStart = rng.Column'Získejte koncový sloupec pro rozsahiColEnd = iColStart + (rng.Columns.Count - 1)'získejte počáteční řádek pro rozsahiRwStart = rng.Row'získejte koncový řádek pro rozsahiRwEnd = iRwStart + (rng.Rows.Count - 1)'zobrazí adresu počátečních a koncových řádků a sloupců v okně zprávy.'MsgBox ("Rozsah začíná na" & Cells (iRwStart, iColStart) .Address & "a končí na" & Cells (iRwEnd, iColEnd) .Address)End Sub |
Když spustíme výše uvedený kód, zobrazí se následující okno se zprávou