„VBA UsedRange“ Kaip rasti naudotų eilučių ir stulpelių skaičių?

„UsedRange“, kaip rodo pavadinimas, yra diapazonai, kurie kaip tam tikros reikšmės juose tušti langeliai neįtraukiami į naudojamus diapazonus, todėl VBA naudoti diapazonai yra VBA diapazono objekto savybė tiems langelių diapazonams eilutės ir stulpeliai, kurie nėra tušti ir turi tam tikras reikšmes.

„UsedRange“ VBA „Excel“

„UseRange in VBA“ yra darbalapio ypatybė, kuri grąžina diapazono objektą, nurodantį tam tikrame darbalapyje naudojamą diapazoną (visas naudojamas „Excel“ langelius arba užpildytą darbalapyje). Tai ypatybė, nurodanti plotą, kurį uždengia arba riboja darbalapio viršutiniame kairiajame langelyje ir paskutiniame dešiniajame langelyje.

„Naudotą langelį“ galime apibūdinti kaip langelį, kuriame yra bet kokia formulė, formatas, reikšmė ir kt. Mes taip pat galime pasirinkti paskutinį naudojamą langelį paspausdami klaviatūros klavišus CTRL + END.

Toliau pateikiama „UsedRange“ iliustracija darbalapyje:

Pirmiau pateiktoje ekrano kopijoje galime pamatyti, kad „UsedRange“ yra A1: D5.

„Excel VBA UsedRange Property“ pavyzdžiai

Pažvelkime į keletą toliau pateiktų pavyzdžių, norėdami pamatyti, kaip darbalapyje esančią „UsedRange“ ypatybę galima panaudoti ieškant VBA naudojamo diapazono:

Šį „VBA UsedRange Excel“ šabloną galite atsisiųsti čia - „VBA UsedRange Excel“ šablonas

1 pavyzdys

Tarkime, kad turime „Excel“ failą, kuriame yra du darbalapiai, ir norime rasti ir pasirinkti naudojamą diapazoną „Sheet1“.

Pažiūrėkime, kas yra „Sheet1“:

Vykdydami šią užduotį, VBA tiesioginiame lange naudojame UseRange ypatybę. Tiesioginis VBA langas yra įrankis, padedantis gauti informacijos apie „Excel“ failus, greitai vykdyti ar derinti bet kokį VBA kodą, net jei vartotojas nerašo jokių makrokomandų. Jis yra „Visual Basic“ redaktoriuje ir jį galima pasiekti taip:

  • Eikite į „Developer“ skirtuką „Excel“, tada spustelėkite „Visual Basic Editor“ arba paspauskite „Alt“ + F11, kad atidarytumėte „Visual Basic Editor“ langą.

Tai padarius, langas atsidaro taip:

  • Paspauskite „Ctrl“ + G, kad atidarytumėte tiesioginį langą, ir įveskite kodą.

Tiesioginis langas atrodo taip:

  • Šis kodas parinks naudojamą diapazoną „Sheet1“

Kodas:

? Darbalapiai ("Sheet1"). Suaktyvinti True? ActiveSheet.UsedRange.Pasirinkite True

Pirmasis kodo sakinys suaktyvins failo „Sheet1“, o antrasis teiginys parinks naudojamą diapazoną tame aktyviame lape.

Rašydami šį kodą matome, kad „Sheet1“ naudojamas diapazonas pasirenkamas taip:

2 pavyzdys

Tarkime, šiame pavyzdyje norime rasti bendrą „Sheet1“ naudojamų eilučių skaičių. Norėdami tai padaryti, atlikime šiuos veiksmus:

  • Modulyje sukurkite makrokomandos pavadinimą.

Kodas:

 Sub TotalRows () Pabaiga Sub 

  • Apibrėžkite „TotalRow“ kintamąjį kaip sveikąjį skaičių VBA:

Kodas:

 Sub TotalRows () Dim TotalRow, kaip sveikoji pabaiga Sub 

  • Dabar priskirkite kintamąjį „TotalRow“ pagal formulę, kad apskaičiuotumėte bendrą eilučių skaičių:

Kodas:

 Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Dabar gautą „TotalRow“ vertę galima rodyti ir grąžinti naudojant VBA pranešimų laukelį (MsgBox) taip:

Kodas:

 Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Dabar mes paleidžiame šį kodą rankiniu būdu arba paspausdami F5 ir gauname bendrą „Sheet1“ naudojamų eilučių skaičių pranešimų laukelyje taip:

Taigi, aukščiau pateiktoje ekrano kopijoje galime pamatyti, kad pranešimo laukelyje grąžinama „5“, ir, kaip matome „Sheet1“, bendras naudojamo diapazono eilučių skaičius yra 5.

3 pavyzdys

Panašiai, jei norime rasti bendrą „Sheet1“ naudojamų stulpelių skaičių, atliksime tuos pačius veiksmus, kaip nurodyta aukščiau, išskyrus nedidelį kodo pakeitimą taip:

Kodas:

 Sub TotalCols () Dim TotalCol kaip sveikasis skaičius TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Dabar, kai paleidžiame šį kodą rankiniu būdu arba paspausdami F5, gauname bendrą „Sheet1“ naudojamų stulpelių skaičių, rodomą pranešimų laukelyje taip:

Taigi pranešimo laukelyje grąžinama „4“, ir, kaip matome „Sheet1“, bendras naudojamo diapazono stulpelių skaičius yra 4.

4 pavyzdys

Tarkime, kad norime rasti paskutinį naudojamą eilutės ir stulpelio numerį failo 2 lape. Pažiūrėkime, kas yra „Sheet2“:

Norėdami tai padaryti, atliksime šiuos veiksmus:

  • Modulyje sukurkite makrokomandos pavadinimą.

Kodas:

 Sub LastRow () Pabaiga Sub 

  • Apibrėžkite kintamąjį „LastRow“ kaip sveikąjį skaičių.

Kodas:

 Sub LastRow () Tamsinti LastRow kaip Sveikasis Pabaiga Sub 

  • Dabar priskirkite kintamąjį „LastRow“ su formule, kad apskaičiuotumėte paskutinį naudotą eilutės numerį:

Kodas:

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

„SpecialCells“ metodas „Excel VBA“ pateikia diapazono objektą, kuris atspindi tik nurodytų langelių tipus. „SpecialCells“ metodo sintaksė yra tokia:

RangeObject.SpecialCells (tipas, vertė)

Ankstesniame kode xlCellTypeLastCell: reiškia paskutinį naudojamo diapazono langelį.

Pastaba: „xlCellType“ bus įtraukti net tušti langeliai, kurių bet kurio langelio numatytasis formatas buvo pakeistas.
  • Dabar gautą „LastRow“ numerio vertę galima rodyti ir grąžinti naudojant pranešimų laukelį (MsgBox) taip:

Kodas:

 Sub LastRow () Dim LastRow kaip sveikas skaičius LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Eilutė MsgBox LastRow End Sub 

  • Dabar mes paleidžiame šį kodą rankiniu būdu arba paspausdami F5 ir gauname paskutinį naudojamą eilutės numerį „Sheet2“, kuris rodomas pranešimų laukelyje taip:

Taigi, aukščiau pateiktoje ekrano kopijoje galime pamatyti, kad pranešimo laukelyje grąžinama „12“, ir, kaip matome „Sheet2“, paskutinį kartą naudotas eilutės numeris yra 12.

Panašiai, jei norime rasti paskutinį naudojamą stulpelio numerį „Sheet2“, atliksime tuos pačius veiksmus, kaip nurodyta aukščiau, išskyrus nedidelį kodo pakeitimą taip:

Kodas:

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

Dabar, kai paleidžiame šį kodą rankiniu būdu arba paspausdami F5, gauname paskutinį naudojamą stulpelio numerį „Sheet2“, kuris rodomas pranešimų laukelyje taip:

Taigi, aukščiau pateiktoje ekrano kopijoje galime pamatyti, kad pranešimo laukelyje grąžinama „3“, ir, kaip matome „Sheet2“, paskutinis naudojamas stulpelio numeris yra 3.

Įsimintini dalykai apie VBA UsedRange

  • „VBA UsedRange“ yra stačiakampio diapazonas.
  • VBA UsedRange apima langelius, turinčius bet kokius duomenis arba formatuojamus ir pan.
  • „Excel VBA UsedRange“ nebūtinai apima viršutinį kairįjį darbalapio langelį.
  • „UsedRange“ nebūtinai laiko aktyvią ląstelę naudota.
  • „UsedRange“ gali būti naudojamas ieškant paskutinės naudotos VBA eilutės ir atstatant naudotą diapazoną ir kt.
  • Klaviatūroje paspaudus sparčiuosius klavišus „Excel“ klavišus CTRL + SHIFT + ENTER, galima išplėsti pasirinkimą nuo aktyvios langelio iki paskutinio panaudoto langelio darbalapyje.