VBA UsedRange - Kako pronaći broj korištenih redaka i stupaca?

UsedRange, kao što i samo ime govori, su rasponi koji kao neka vrsta vrijednosti u njima prazne ćelije nisu uključeni u korištene raspone, pa je u VBA rabljeni rasponi svojstvo objekta raspona u VBA za taj raspon stanica u retci i stupci koji nisu prazni i sadrže neke vrijednosti.

UsedRange u VBA Excelu

UsedRange u VBA svojstvo je radnog lista koje vraća objekt raspona koji predstavlja raspon koji se koristi (sve Excel ćelije korištene ili popunjene u radnom listu) na određenom radnom listu. To je svojstvo koje predstavlja područje koje pokriva ili ograničava gornja lijeva korištena stanica i zadnje desno korištene stanice na radnom listu.

"Korištena ćelija" možemo opisati kao ćeliju koja sadrži bilo koju formulu, oblikovanje, vrijednost itd. Također možemo odabrati zadnju korištenu ćeliju pritiskom na tipke CTRL + END na tipkovnici.

Slijedi ilustracija UsedRange na radnom listu:

Na gornjoj snimci zaslona možemo vidjeti da je UsedRange A1: D5.

Primjeri svojstva Excel VBA UsedRange

Pogledajmo nekoliko primjera u nastavku kako bismo vidjeli kako se svojstvo UsedRange na radnom listu može koristiti za pronalaženje korištenog raspona u VBA:

Primjer # 1

Recimo da imamo Excel datoteku koja sadrži dva radna lista i želimo pronaći i odabrati korišteni raspon na Sheet1.

Pogledajmo što sadrži List1:

Za postizanje ovog zadatka koristimo svojstvo UsedRange u prozoru VBA Immediate. VBA neposredni prozor alat je koji pomaže dobiti informacije o Excel datotekama, brzo izvršiti ili otkloniti pogreške u bilo kojem VBA kodu, čak i ako korisnik ne piše makronaredbe. Nalazi se u uređivaču Visual Basic i može mu se pristupiti na sljedeći način:

  • Idite na karticu Razvojni programer Excel, a zatim kliknite na Visual Basic Editor ili pritisnite Alt + F11 da biste otvorili prozor Visual Basic Editor.

Nakon toga otvara se prozor na sljedeći način:

  • Pritisnite Ctrl + G da biste otvorili neposredni prozor i unesite kôd.

Neposredni prozor izgleda:

  • Sljedeći će kôd odabrati korišteni raspon na Sheet1.

Kodirati:

? Radni listovi ("Sheet1"). Aktivirati True? ActiveSheet.UsedRange.Select True

Prva izjava koda aktivirat će Sheet1 datoteke, a druga će naredba odabrati korišteni raspon u tom aktivnom listu.

Tijekom pisanja ovog koda vidimo da se raspon korišten u Sheet1 odabire na sljedeći način:

Primjer # 2

Recimo, u ovom primjeru želimo pronaći ukupan broj redaka korištenih u listu 1. Da bismo to učinili, slijedimo korake u nastavku:

  • Stvorite ime makronaredbe u modulu.

Kodirati:

Sub TotalRows () Kraj Sub
  • Definirajte varijablu TotalRow kao Integer u VBA:

Kodirati:

Sub TotalRows () Zatamni TotalRow kao cjelobrojni kraj Sub
  • Sada dodijelite varijablu TotalRow s formulom za izračun ukupnog broja redaka:

Kodirati:

Sub TotalRows () Priguši TotalRow kao cjeloviti TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Sada se rezultirajuća vrijednost TotalRow može prikazati i vratiti pomoću okvira za poruke VBA (MsgBox) kako slijedi:

Kodirati:

Sub TotalRows () Priguši TotalRow kao cjeloviti TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Sada ovaj kôd pokrećemo ručno ili pritiskom na F5 i dobivamo ukupan broj redaka korištenih u Sheet1 prikazan u okviru za poruke kako slijedi:

Dakle, na gornjoj snimci zaslona možemo vidjeti da se u okvir za poruku vraća '5', a kao što možemo vidjeti na Sheet1, ukupan broj redaka u korištenom rasponu je 5.

Primjer # 3

Slično tome, ako želimo pronaći ukupan broj stupaca korištenih u Sheet1, slijedit ćemo iste korake kao gore, osim male promjene u kodu kako slijedi:

Kodirati:

Sub TotalCols () Zatamni TotalCol kao cjeloviti TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Now when we run this code manually or by pressing F5, we get the total number of columns used in Sheet1 displayed in a Message Box as follows:

So, ‘4’ is returned in the message box, and as we can see in Sheet1, the total number of columns in the used range is 4.

Example #4

Now, let’s say we wish to find the last used row and column number in Sheet2 of the file. Let us see what the Sheet2 contains:

To do this, we follow the below steps:

  • Create a macro name in the module.

Code:

Sub LastRow() End Sub
  • Define the variable LastRow as Integer.

Code:

Sub LastRow() Dim LastRow As Integer End Sub
  • Now assign the variable LastRow with the formula to calculate the last used row number:

Code:

Sub LastRow() Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row End Sub

Metoda SpecialCells u programu Excel VBA vraća objekt raspona koji predstavlja samo navedene vrste ćelija. Sintaksa metode SpecialCells je:

RangeObject.SpecialCells (vrsta, vrijednost)

U gornjem kodu, xlCellTypeLastCell: predstavlja zadnju ćeliju u korištenom rasponu.

Napomena: 'xlCellType' će čak uključivati ​​prazne ćelije kojima je promijenjen zadani format bilo koje od njihovih ćelija.
  • Sada se rezultantna vrijednost broja LastRow može prikazati i vratiti pomoću okvira za poruke (MsgBox) na sljedeći način:

Kodirati:

Sub LastRow () Zatamni LastRow kao cjelobrojni LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Sada ovaj kôd pokrećemo ručno ili pritiskom na F5 i dobivamo zadnji upotrijebljeni broj retka u Sheet2 prikazan u okviru za poruke na sljedeći način:

So, we can see in the above screenshot that ‘12’ is returned in the message box, and as we can see in Sheet2, the last used row number is 12.

Similarly, if we wish to find the last used column number in Sheet2, we will follow the same steps as above except for a slight change in the code as follows:

Code:

Sub LastCol() Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column MsgBox LastCol End Sub

Now when we run this code manually or by pressing F5, we get the last used column number in Sheet2 displayed in a Message Box as follows:

So, we can see in the above screenshot that ‘3’ is returned in the message box, and as we can see in Sheet2, the last used column number is 3.

Things to Remember About VBA UsedRange

  • VBA UsedRange is a rectangle range.
  • VBA UsedRange includes cells having any data or being formatted etc.
  • Excel VBA UsedRange ne uključuje nužno gornju lijevu ćeliju radnog lista.
  • UsedRange ne uzima nužno aktivnu ćeliju u upotrebu.
  • UsedRange se može koristiti za pronalaženje posljednjeg korištenog retka u VBA i za poništavanje korištenog raspona itd.
  • Pritiskom na Excel tipke CTRL + SHIFT + ENTER na tipkovnici možete proširiti odabir s aktivne ćelije na posljednju korištenu ćeliju na radnom listu.

Zanimljivi članci...