VBA kasutatud vahemik | Kuidas leida kasutatud ridade ja veergude arv?

Nagu nimest võib järeldada, on UsedRange vahemikud, mis mingisuguste väärtustena ei sisalda tühjad lahtrid kasutatavates vahemikes, nii et VBA-s Kasutatud vahemikud on nende lahtrivahemike VBA-s vahemikuobjekti omadus read ja veerud, mis pole tühjad ja millel on mõned väärtused.

Kasutatud vahemik VBA Excelis

VBA-s UsedRange on töölehe omadus, mis tagastab konkreetse töölehe jaoks kasutatud vahemikku esindava vahemikuobjekti (kõik kasutatud Exceli lahtrid või täidetud töölehel). See on omadus, mis tähistab ala, mis on kaetud või piiratud ülal vasakul kasutatud lahtrite ja viimati paremal kasutatud lahtritega töölehel.

Võime kirjeldada kasutatud lahtrit lahtrina, mis sisaldab mis tahes valemit, vormingut, väärtust jms. Samuti saame valida viimati kasutatud lahtri, vajutades klaviatuuril klahve CTRL + END.

Järgnevalt on kasutatud töölehe illustratsioon UsedRange:

Ülaltoodud ekraanipildilt näeme, et UsedRange on A1: D5.

Exceli VBA UsedRange Property näited

Vaatame allpool mõningaid näiteid, et näha, kuidas töölehel olevat atribuuti UsedRange saab kasutada VBA-s kasutatud vahemiku leidmiseks:

Selle VBA UsedRange Exceli malli saate alla laadida siit - VBA UsedRange Exceli mall

Näide 1

Oletame, et meil on Exceli fail, mis sisaldab kahte töölehte, ja soovime leida ja valida Sheet1-st kasutatud vahemik.

Vaatame, mida Sheet1 sisaldab:

Selle ülesande täitmiseks kasutame VBA vaheaknas atribuuti UsedRange. VBA vahetu aken on tööriist, mis aitab saada teavet Exceli failide kohta, käivitada või siluda mis tahes VBA-koodi isegi siis, kui kasutaja ei kirjuta ühtegi makrot. See asub Visual Basicu redaktoris ja sellele pääseb juurde järgmiselt:

  • Minge vahekaardile Arendaja Excel ja seejärel klõpsake Visual Basic Editor või vajutage Visual Basic Editori akna avamiseks Alt + F11 .

Seda tehes avaneb järgmine aken:

  • Vahetu akna avamiseks vajutage klahvikombinatsiooni Ctrl + G ja sisestage kood.

Kohene aken näeb välja selline:

  • Järgmine kood valib lehel1 kasutatud vahemiku

Kood:

? Töölehed ("Sheet1"). Aktiveerige True? ActiveSheet.UsedRange. Valige True

Koodi esimene käsk aktiveerib faili Sheet1 ja teine ​​lause valib aktiivses lehes kasutatud vahemiku.

Selle koodi kirjutamisel näeme, et tabelis 1 kasutatav vahemik valitakse järgmiselt:

Näide 2

Oletame, et selles näites soovime leida lehel 1 kasutatud ridade koguarvu. Selleks järgime alltoodud samme:

  • Looge moodulis makro nimi.

Kood:

 Alamread () Lõpp-alamrühm 

  • Määratlege muutuja TotalRow täisarvuna VBA-s:

Kood:

 Sub TotalRows () Dim TotalRow Integer End Sub 

  • Nüüd määrake muutuja TotalRow koos valemiga ridade koguarvu arvutamiseks:

Kood:

 Sub TotalRows () Dim TotalRow kui täisarv TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Nüüd saab TotalRow tulemuseks oleva väärtuse kuvada ja tagastada VBA teatekasti (MsgBox) abil järgmiselt:

Kood:

 Sub TotalRows () Dim TotalRow kui täisarv TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Nüüd käivitame selle koodi käsitsi või vajutades klahvi F5 ja kuvatakse teatekastis Sheet1-s kasutatud ridade koguarv järgmiselt:

Niisiis näeme ülaltoodud ekraanipildil, et sõnumikasti tagastatakse "5" ja nagu näeme Sheet1-s, on kasutatud vahemiku ridade koguarv 5.

Näide # 3

Samamoodi, kui soovime leida Sheet1-s kasutatud veergude koguarvu, järgime samu samme nagu eespool, välja arvatud koodis tehtud väike muudatus järgmiselt:

Kood:

 Sub TotalCols () Dim TotalCol täisarvuna TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Nüüd, kui käivitame selle koodi käsitsi või vajutades klahvi F5, kuvatakse teatekastis Sheet1-s kasutatud veergude koguarv järgmiselt:

Niisiis tagastatakse sõnumikasti '4' ja nagu näeme Sheet1-l, on veergude koguarv kasutatud vahemikus 4.

Näide 4

Oletame, et soovime leida faili Sheet2-st viimati kasutatud rea ja veeru numbri. Vaatame, mida Sheet2 sisaldab:

Selleks järgime järgmisi samme:

  • Looge moodulis makro nimi.

Kood:

 Sub LastRow () Lõpeta alam 

  • Määratlege muutuja LastRow täisarvuna.

Kood:

 Sub LastRow () Tühjendage LastRow täisarvu lõppsummana 

  • Nüüd määrake muutuja LastRow koos valemiga, et arvutada viimati kasutatud rea number:

Kood:

 Sub LastRow () Dim LastRow kui täisarv LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Rida End Sub 

Exceli VBA meetod SpecialCells tagastab vahemiku objekti, mis esindab ainult määratud lahtritüüpe. SpecialCellsi meetodi süntaks on järgmine:

RangeObject.SpecialCells (tüüp, väärtus)

Ülaltoodud koodis tähistab xlCellTypeLastCell: viimast lahtrit kasutatud vahemikus.

Märkus: 'xlCellType' sisaldab isegi tühje lahtrid, mille kõigi lahtrite vaikevormingut on muudetud.
  • Nüüd saab LastRowi numbri tulemuse kuvada ja tagastada sõnumikasti (MsgBox) abil järgmiselt:

Kood:

 Sub LastRow () Dim LastRow Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Rida MsgBox LastRow End Sub 

  • Nüüd käivitame selle koodi käsitsi või vajutades klahvi F5 ja saame viimati kasutatud lehenumbri lehel 2 kuvatud sõnumikasti järgmiselt:

Niisiis näeme ülaltoodud ekraanipildil, et sõnumikasti tagastatakse "12" ja nagu näeme Sheet2-s, on viimati kasutatud rea number 12.

Samamoodi, kui soovime leida lehelt2 viimati kasutatud veeru numbri, järgime samu samme nagu eespool, välja arvatud koodis tehtud väike muudatus järgmiselt:

Kood:

 Sub LastCol () Dim LastCol kui täisarv LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Veerg MsgBox LastCol End Sub 

Nüüd, kui käivitame selle koodi käsitsi või vajutades klahvi F5, kuvatakse teatekastis Sheet2-s viimati kasutatud veeru number järgmiselt:

Niisiis näeme ülaltoodud ekraanipildil, et sõnumikasti tagastatakse "3" ja nagu näeme Sheet2-s, on viimati kasutatud veeru number 3.

Mida VBA UsedRange'i kohta meeles pidada

  • VBA UsedRange on ristkülikukujuline vahemik.
  • VBA UsedRange sisaldab lahtreid, millel on mingeid andmeid või mida vormindatakse jne.
  • Exceli VBA UsedRange ei pruugi ilmuda töölehe vasakus ülanurgas.
  • UsedRange ei pea aktiivset lahtrit tingimata kasutatuks.
  • Kasutatud vahemiku abil saab leida VBA-st viimati kasutatud rea ja lähtestada kasutatud vahemik jne.
  • Klõpsates kiirklahve Exceli klahve CTRL + SHIFT + ENTER, saab valikut laiendada aktiivsest lahtrist töölehe viimati kasutatud lahtrini.