VBA UsedRange - Kako najti število uporabljenih vrstic in stolpcev?

Kot že ime pove, UsedRange so obsegi, ki kot neke vrste vrednosti v njih prazne celice niso vključene v uporabljene obsege, zato je v VBA Uporabljeni obsegi lastnost predmeta obsega v VBA za tisti obseg celic v vrstice in stolpci, ki niso prazni in vsebujejo nekaj vrednosti.

UsedRange v programu VBA Excel

UsedRange v VBA je lastnost delovnega lista, ki vrne objekt obsega, ki predstavlja uporabljeni obseg (vse uporabljene ali izpolnjene Excelove celice na delovnem listu) na določenem delovnem listu. Je lastnost, ki predstavlja območje, ki ga pokriva ali omejuje zgornja leva uporabljena celica in zadnje desno uporabljene celice na delovnem listu.

"Uporabljena celica" lahko opišemo kot celico, ki vsebuje katero koli formulo, oblikovanje, vrednost itd. Zadnjo uporabljeno celico lahko izberemo tudi s pritiskom tipk CTRL + END na tipkovnici.

Sledi ponazoritev rabljenega obsega na delovnem listu:

Na zgornjem posnetku zaslona vidimo, da je UsedRange A1: D5.

Primeri lastnosti Excel VBA UsedRange

Oglejmo si nekaj spodnjih primerov, da ugotovimo, kako lahko lastnost UsedRange na delovnem listu poiščemo uporabljeni obseg v VBA:

Primer # 1

Recimo, da imamo datoteko Excel, ki vsebuje dva delovna lista, in želimo najti in izbrati uporabljeni obseg na Sheet1.

Poglejmo, kaj vsebuje List1:

Za izpolnitev te naloge uporabljamo lastnost UsedRange v oknu VBA takojšnje. Neposredno okno VBA je orodje, ki pomaga pridobiti informacije o Excelovih datotekah, hitro zagnati ali odpraviti napake v kateri koli kodi VBA, tudi če uporabnik ne piše makrov. Nahaja se v urejevalniku Visual Basic in je dostopen na naslednji način:

  • Odprite zavihek Razvijalec Excel in nato kliknite urejevalnik Visual Basic ali pritisnite Alt + F11, da odprete okno urejevalnika Visual Basic.

Ob tem se odpre okno, kot sledi:

  • Pritisnite Ctrl + G, da odprete takojšnje okno, in vnesite kodo.

Takojšnje okno je videti tako:

  • Naslednja koda bo izbrala uporabljeni obseg na Sheet1.

Koda:

? Delovni listi ("Sheet1"). Aktivirati True? ActiveSheet.UsedRange.Select True

Prvi stavek kode aktivira Sheet1 datoteke, drugi stavek pa izbere uporabljeni obseg v tem aktivnem listu.

Med pisanjem te kode vidimo, da se obseg, uporabljen v Sheet1, izbere na naslednji način:

2. primer

Zdaj, recimo, v tem primeru želimo najti skupno število vrstic, uporabljenih v listu 1. Če želite to narediti, sledimo spodnjim korakom:

  • V modulu ustvarite ime makra.

Koda:

Sub TotalRows () End Sub
  • Spremenljivko TotalRow določite kot celo število v VBA:

Koda:

Sub TotalRows () Zatemni TotalRow kot celo število Konec Sub
  • Zdaj dodelite spremenljivko TotalRow s formulo za izračun skupnega števila vrstic:

Koda:

Sub TotalRows () Dim TotalRow kot celo število TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Zdaj se lahko dobljena vrednost TotalRow prikaže in vrne s pomočjo polja za sporočila VBA (MsgBox), kot sledi:

Koda:

Sub TotalRows () Zatemni TotalRow kot celo število TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Zdaj zaženemo to kodo ročno ali s pritiskom na F5 in dobimo skupno število vrstic, uporabljenih v Sheet1, prikazano v oknu za sporočila, kot sledi:

Tako lahko na zgornjem posnetku zaslona vidimo, da se v polje za sporočilo vrne '5', in kot lahko vidimo na Sheet1, je skupno število vrstic v uporabljenem obsegu 5.

3. primer

Če želimo najti skupno število stolpcev, uporabljenih v Sheet1, bomo sledili enakim korakom kot zgoraj, razen majhne spremembe kode, kot sledi:

Koda:

Sub TotalCols () Zatemni TotalCol kot celo število TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Zdaj, ko to kodo zaženemo ročno ali s pritiskom na F5, dobimo skupno število stolpcev, uporabljenih v Sheet1, prikazano v oknu za sporočila, kot sledi:

Torej se v polje za sporočilo vrne '4' in kot vidimo na Sheet1, je skupno število stolpcev v uporabljenem obsegu 4.

Primer # 4

Zdaj recimo, da želimo najti zadnjo uporabljeno številko vrstice in stolpca v Sheet2 datoteke. Poglejmo, kaj vsebuje Sheet2:

Za to sledimo spodnjim korakom:

  • V modulu ustvarite ime makra.

Koda:

Sub LastRow () End Sub
  • Spremenljivko LastRow definirajte kot celo število.

Koda:

Sub LastRow () Zatemni LastRow kot celoštevilčni konec Sub
  • Zdaj dodelite spremenljivko LastRow s formulo za izračun zadnje uporabljene številke vrstice:

Koda:

Sub LastRow () Dim LastRow kot celo število LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Vrst End End

Metoda SpecialCells v Excelu VBA vrne objekt obsega, ki predstavlja samo določene vrste celic. Sintaksa metode SpecialCells je:

RangeObject.SpecialCells (vrsta, vrednost)

V zgornji kodi xlCellTypeLastCell: predstavlja zadnjo celico v uporabljenem obsegu.

Opomba: 'xlCellType' bo vključeval celo prazne celice, za katere je bila spremenjena privzeta oblika katere koli celice.
  • Zdaj lahko nastalo vrednost številke LastRow prikažemo in vrnemo s pomočjo okna za sporočila (MsgBox), kot sledi:

Koda:

Sub LastRow () Dim LastRow kot celo število LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Zdaj zaženemo to kodo ročno ali s pritiskom na F5 in dobimo zadnjo uporabljeno številko vrstice v Sheet2, prikazano v oknu za sporočila, kot sledi:

Tako lahko na zgornjem posnetku zaslona vidimo, da se v okno za sporočilo vrne '12', in kot lahko vidimo na Sheet2, je zadnja uporabljena številka vrstice 12.

Če želimo v Sheet2 poiskati zadnjo uporabljeno številko stolpca, bomo sledili enakim korakom kot zgoraj, razen majhne spremembe kode, kot sledi:

Koda:

Sub LastCol () Zatemni LastCol kot celo število LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Stolpec MsgBox LastCol End Sub

Zdaj, ko to kodo zaženemo ročno ali s pritiskom na F5, dobimo zadnjo uporabljeno številko stolpca v Sheet2, prikazano v oknu za sporočila, kot sledi:

Tako lahko na zgornjem posnetku zaslona vidimo, da se v okno za sporočilo vrne '3', in kot lahko vidimo na Sheet2, je zadnja uporabljena številka stolpca 3.

Stvari, ki si jih je treba zapomniti pri VBA UsedRange

  • VBA UsedRange je obseg pravokotnika.
  • VBA UsedRange vključuje celice, ki imajo kakršne koli podatke ali so formatirane itd.
  • Excel VBA UsedRange ne vključuje nujno zgornje leve celice delovnega lista.
  • Uporaba Range ni nujno, da aktivna celica velja za uporabljeno.
  • UsedRange lahko uporabite za iskanje zadnje uporabljene vrstice v VBA in za ponastavitev uporabljenega obsega itd.
  • S pritiskom na bližnjične Excelove tipke CTRL + SHIFT + ENTER na tipkovnici lahko razširite izbor iz aktivne celice na zadnjo uporabljeno celico na delovnem listu.

Zanimive Članki...