VBA UsedRange - Hogyan lehet megtalálni a használt sorok és oszlopok számát?

A UsedRange, amint a neve is sugallja, azok a tartományok, amelyek valamilyen értékként tartalmazzák az üres cellákat, és nem szerepelnek a használt tartományokban, így a VBA-ban a Használt tartományok a VBA tartomány objektum tulajdonsága azon cellatartományokban sorok és oszlopok, amelyek nem üresek, és tartalmaznak néhány értéket.

Használt tartomány a VBA Excel-ben

A VBA-ban a UsedRange egy olyan munkalap tulajdonság, amely egy adott munkalapon a használt tartományt (az összes felhasznált vagy egy munkalapba kitöltött Excel-cellát) képviselő tartomány-objektumot adja vissza. Ez a tulajdonság azt a területet képviseli, amelyet egy munkalap bal felső és a jobb oldali használt cellája borít vagy határol.

Leírhatjuk a 'Használt cellát' olyan cellaként, amely bármilyen képletet, formázást, értéket stb. Tartalmaz. Kiválaszthatjuk az utoljára használt cellát is a CTRL + END billentyűk megnyomásával.

Az alábbiakban bemutatjuk a UsedRange példáját egy munkalapon:

A fenti képernyőképen láthatjuk, hogy a UsedRange A1: D5.

Példák az Excel VBA UsedRange tulajdonságra

Nézzünk meg néhány alábbi példát, hogy lássuk, hogyan lehet a munkalapon a UsedRange tulajdonságot használni a VBA használt tartományának megkeresésére:

1. példa

Tegyük fel, hogy van egy Excel-fájlunk, amely két munkalapot tartalmaz, és meg akarjuk találni és kiválasztani a használt tartományt a Sheet1-en.

Nézzük meg, mit tartalmaz a Sheet1:

A feladat végrehajtásához a VBA Azonnali ablakában a UsedRange tulajdonságot használjuk. A VBA azonnali ablak olyan eszköz, amely segít információkat szerezni az Excel fájlokról, gyorsan végrehajtani vagy hibakeresni a VBA kódokat, még akkor is, ha a felhasználó nem ír makrót. A Visual Basic Editorban található, és az alábbiak szerint érhető el:

  • Menjen a Fejlesztő fülre, majd kattintson a Visual Basic Editor elemre, vagy nyomja meg az Alt + F11 billentyűkombinációt a Visual Basic Editor ablak megnyitásához.

Ennek során egy ablak nyílik meg a következőképpen:

  • A Ctrl + G megnyomásával nyissa meg az azonnali ablakot, és írja be a kódot.

A közvetlen ablak a következőképpen néz ki:

  • A következő kód választja ki a használt tartományt az 1. lapon.

Kód:

? Munkalapok ("Sheet1"). Aktiválja a True értéket? ActiveSheet.UsedRange.Select True

A kód első mondata aktiválja a fájl Sheet1-et, a második utasítás pedig kiválasztja az aktív lapon használt tartományt.

A kód megírásakor azt látjuk, hogy a Sheet1-ben használt tartomány az alábbiak szerint kerül kiválasztásra:

2. példa

Most tegyük fel, hogy ebben a példában meg akarjuk találni a Sheet1-ben használt sorok teljes számát. Ehhez kövesse az alábbi lépéseket:

  • Hozzon létre egy makrónevet a modulban.

Kód:

Sub TotalRows () Vége Sub
  • Határozza meg a TotalRow változót egészként a VBA-ban:

Kód:

Sub TotalRows () Dim TotalRow egész szám végként Sub
  • Most rendelje hozzá a TotalRow változót a képlettel a sorok teljes számának kiszámításához:

Kód:

Sub TotalRows () Dim TotalRow egész számként TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Most a TotalRow eredményértéke megjeleníthető és visszaadható egy VBA üzenetdoboz (MsgBox) használatával az alábbiak szerint:

Kód:

Sub TotalRows () Dim TotalRow egész számként TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Most ezt a kódot futtatjuk manuálisan vagy az F5 megnyomásával, és az Üzenetdobozban az alábbiak szerint jelenítjük meg a Sheet1-ben használt sorok teljes számát:

Tehát a fenti képernyőképen láthatjuk, hogy az '5' jelenik meg az üzenetmezőben, és amint azt a Sheet1-ben láthatjuk, a használt sorok teljes száma 5.

3. példa

Hasonlóképpen, ha meg akarjuk találni a Sheet1-ben használt oszlopok teljes számát, ugyanazokat a lépéseket fogjuk követni, mint fent, kivéve a kód enyhe változtatását az alábbiak szerint:

Kód:

Sub TotalCols () Dim TotalCol egész számként TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Most, amikor ezt a kódot manuálisan vagy az F5 megnyomásával futtatjuk, az Üzenet1 mezőben az oszlopok számát jelenítjük meg a következő módon:

Tehát '4' jelenik meg az üzenetmezőben, és amint azt az 1. lapon láthatjuk, a használt tartomány oszlopainak száma 4.

4. példa

Tegyük fel, hogy meg akarjuk találni az utolsó használt sor és oszlop számát a fájl 2. lapján. Nézzük meg, mit tartalmaz a 2. lap:

Ehhez kövesse az alábbi lépéseket:

  • Hozzon létre egy makrónevet a modulban.

Kód:

Sub LastRow () End Sub
  • Határozza meg a LastRow változót egésznek.

Kód:

Sub LastRow () Dim LastRow Dim Integer End Sub
  • Most rendelje hozzá a LastRow változót a képlettel az utoljára használt sorszám kiszámításához:

Kód:

Sub LastRow () Dim LastRow mint egész szám LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Sor vége Sub

Az Excel VBA SpecialCells módszere olyan tartományobjektumot ad vissza, amely csak a megadott cellatípusokat reprezentálja. A SpecialCells módszer szintaxisa a következő:

RangeObject.SpecialCells (típus, érték)

A fenti kódban az xlCellTypeLastCell: a használt tartomány utolsó celláját jelenti.

Megjegyzés: Az 'xlCellType' olyan üres cellákat is tartalmaz, amelyek bármelyik cellájának alapértelmezett formátumát megváltoztatták.
  • Most a LastRow szám eredő értéke jeleníthető meg és küldhető vissza egy üzenetdoboz (MsgBox) segítségével az alábbiak szerint:

Kód:

Sub LastRow () Dim LastRow, mint egész, LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Most ezt a kódot futtatjuk manuálisan vagy az F5 megnyomásával, és a következő lapon a Sheet2-ben használt utoljára használt sorszámot jelenítjük meg:

Tehát a fenti képernyőképen láthatjuk, hogy a "12" jelenik meg az üzenet mezőben, és ahogy a 2. lapon láthatjuk, az utoljára használt sor száma 12.

Hasonlóképpen, ha meg akarjuk találni az utoljára használt oszlopszámot a 2. lapon, ugyanazokat a lépéseket fogjuk követni, mint fent, kivéve a kód enyhe módosítását:

Kód:

Sub LastCol () Dim LastCol egész számként LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Oszlop MsgBox LastCol End Sub

Most, amikor ezt a kódot futtatjuk manuálisan vagy az F5 megnyomásával, megkapjuk a Sheet2 utoljára használt oszlopszámát az Üzenetmezőben az alábbiak szerint:

Tehát a fenti képernyőképen láthatjuk, hogy a "3" jelenik meg az üzenetmezőben, és ahogy a 2. lapon láthatjuk, az utoljára használt oszlop száma 3.

Emlékezetes dolgok a VBA UsedRange-ről

  • A VBA UsedRange egy téglalap tartomány.
  • A VBA UsedRange olyan cellákat tartalmaz, amelyek bármilyen adattal rendelkeznek, vagy formázásra kerülnek stb.
  • Az Excel VBA UsedRange nem feltétlenül tartalmazza a munkalap bal felső celláját.
  • A UsedRange nem feltétlenül tekinti az aktív cellát használtnak.
  • A UsedRange használható a VBA utoljára használt sorának megkeresésére és a használt tartomány visszaállítására stb.
  • Az Excel billentyűkombináció CTRL + SHIFT + ENTER billentyűzeten történő megnyomásával kiterjesztheti a választást egy aktív celláról a munkalap utolsó használt cellájára.

érdekes cikkek...