Ez az oktatóanyag elmagyarázza, hogyan kell használni a jelenlegi régiót a VBA -ban.
Az CurrentRégió tulajdonság a VBA -ban egy módja annak, hogy kiválassza az összes olyan cellát, amely egy olyan tartományban található, amellyel érdemes dolgozni. Mindaddig, amíg a tartományon belüli cellák egymást követik vagy „érintik” egymást, a CurrentRégió kiválasztja a régió minden celláját.
CurrentRégió szintaxisa
A szintaxis nagyon egyszerű:
1 | Tartomány ("E11"). CurrentRegion.Select |
ahol megadhatja azt a cellát, amelynek jelenlegi régióját ki akarta választani, majd a CurrentRegion.Select tulajdonság a cellák tartományának kiválasztásához.
Az aktuális régió megszerzése
Tekintsük a következő munkalapot.
a következő alfolyamat kiválasztja az adatbázis összes celláját
1234567 | Sub FindCurrentRegion ()Dim rng mint tartomány'állítsa be a tartományt az E11 celláraÁllítsa be az rng = tartományt ("E11")'válassza ki az aktuális régiótrng.CurrentRegion.SelectEnd Sub |
Ha futtatjuk a rutint, az összes sejt a CurrentRégió az E11 cella ki lesz választva.
Ha eltávolítjuk a szomszédos cellák tartalmát, és újra futtatjuk a rutint, akkor a következő lesz kiválasztva aktuális régióként.
Ha azonban még több adatot távolítunk el, az alábbi példával végezhetjük el az E11 cella jelenlegi régióját.
Ha a D13 -ba információkat teszünk, a következőket kapjuk:
Az CurrentRégió ezért visszaad egy másikat hatótávolság objektum, amelyet az Ön által megadott tartományt körülvevő legkisebb foglalt oszlopok és sorok kombinációja határoz meg.
A sorok és oszlopok számlálása az aktuális régióban
Tudjuk használni CurrentRégió hogy megszámolja a sorokat és az oszlopokat.
12345678910111213 | Sub FindCurrentRegion ()Dim rng mint tartományDim iRw mint egészDim iCol mint egész'állítsa be a tartománytÁllítsa be az rng = tartományt ("E11")'számold a sorokatiRw = rng.CurrentRegion.Rows.Count'számolja az oszlopokatiCol = rng.CurrentRegion.Columns.Count'jelenítse meg az eredményt egy üzenetmezőbenMsgBox ("Vannak" & iRw & "sorok és" & iCol & "oszlopok a jelenlegi régióban")End Sub |
Ha végrehajtjuk az eljárást, a következő üzenetmező jelenik meg.
Az aktuális régió törlése
Az aktuális régió tulajdonságát is használhatjuk a cellák tartományának törlésére.
123456 | Sub ClearCurrentRegion ()Dim rng mint tartomány'állítsa be a tartománytÁllítsa be az rng = tartományt ("E11")rng.JelenlegiRégió.TisztaEnd Sub |
Az aktuális régió hozzárendelése egy változóhoz
A teljes aktuális régiót hozzárendelhetjük egy tartományváltozóhoz is, majd a tartományváltozóval manipulálhatjuk a cellákat - legyen szó a cellák formázásáról, a cellák rendezéséről stb.
12345678910 | Sub AssignCurrentRegionToVariable ()Dim rng mint tartomány'állítsa be a tartományt az E11 aktuális régiójábaSet rng = Range ("E11"). CurrentRégió'színezd ki a hátteret és a szövegetrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Igazrng.Font.Color = -16776961End Sub |
Ha futtatjuk a fenti eljárást, akkor az alább látható munkalapot kapunk!
Kezdő és befejező cellák lekérése az aktuális régióban
Kicsit bonyolultabb kóddal megkaphatjuk az aktuális régió első és utolsó celláját.
123456789101112131415161718 | GetStartAndEndCells () alrészDim rng mint tartományDim iRw mint egészDim iCol mint egészHalvány iColStart, iColEnd, iRwStart, iRwEnd karakterláncként'állítsa be a tartományváltozót az E11 aktuális régiójábaSet rng = Range ("E11"). CurrentRégió'állítsa be a tartomány kezdő oszlopátiColStart = rng.Oszlop'szerezze be a tartomány végoszlopátiColEnd = iColStart + (rng.Oszlopok.szám - 1)'kapja meg a tartomány kezdősorátiRwStart = rng. Sor'kapja meg a tartomány végső sorátiRwEnd = iRwStart + (rng.Rows.Count - 1)'jelenítse meg a kezdő és befejező sorok és oszlopok címét egy üzenetmezőbenMsgBox ("A tartomány kezdete:" & Cells (iRwStart, iColStart) .Cím és "és a" & Cells (iRwEnd, iColEnd).End Sub |
Amikor futtatjuk a fenti kódot, a következő üzenetmező jelenik meg