3 geriausi būdai rasti paskutinę tuščią eilutę ir stulpelį naudojant VBA

Turinys

Paskutinės naudotos eilutės ir stulpelio paieška yra viena iš pagrindinių ir svarbių užduočių atliekant bet kokią „Excel“ automatizavimą naudojant VBA. Norėdami automatiškai sudaryti lapus, darbo knygas ir sutvarkyti duomenis, turite rasti duomenų, esančių lapuose, ribą.

Šis straipsnis paaiškins kiekvieną būdą, kaip lengviausiai rasti „Excel“ paskutinę eilutę ir stulpelį.
1. Raskite paskutinę tuščią eilutę stulpelyje naudodami Range.End
Pirmiausia pažiūrėkime kodą. Laiške paaiškinsiu.

Sub getLastUsedRow () Dim last_row As Integer last_row = Ląstelės (Rows.Count, 1). End (xlUp). Eilutė „Ši eilutė gauna paskutinę eilutę Derinti. Spausdinti last_row End Sub

Aukščiau pateiktas poskyris randa paskutinę 1 stulpelio eilutę.

Kaip tai veikia?
Tai tas pats, kas eiti į paskutinę lapo eilutę ir tada paspausti CTRL+UP spartųjį klavišą.
Ląstelės (eilutės, skaičius, 1): Ši dalis pasirenka langelį A stulpelyje. Eilutės. Skaičius pateikia 1048576, kuri paprastai yra paskutinė „Excel“ lapo eilutė.

Ląstelės (1048576, 1)

.Pabaiga (xlUp): Pabaiga yra diapazono klasės metodas, naudojamas naršyti lapuose iki galo. xlUp yra kintamasis, nurodantis kryptį. Kartu ši komanda parenka paskutinę eilutę su duomenimis.

Ląstelės (Eilučių skaičius, 1). Pabaiga (xlUp)

.Eilutė: eilutė grąžina pasirinkto langelio eilutės numerį. Taigi mes gauname paskutinio langelio eilutės numerį su duomenimis A stulpelyje, pavyzdyje jis yra 8.

Pažiūrėkite, kaip lengva rasti paskutines duomenų eilutes. Šis metodas pasirinks paskutinę duomenų eilutę, neatsižvelgiant į tuščias langelius prieš ją. Paveikslėlyje matote, kad tik langelis A8 turi duomenų. Visos ankstesnės ląstelės yra tuščios, išskyrus A4.

Pasirinkite paskutinį langelį su stulpelio duomenimis
Jei norite pasirinkti paskutinį langelį A stulpelyje, tiesiog pašalinkite „.row“ iš pabaigos ir parašykite .select.

Sub getLastUsedRow () Cells (Rows.Count, 1). End (xlUp). Pasirinkite „Ši eilutė pasirenka paskutinį stulpelio elementą„ End Sub “

Komanda „.Select“ pasirenka aktyvų langelį.
Gaukite paskutinio langelio adreso stulpelį
Jei norite gauti paskutinio langelio adresą A stulpelyje, tiesiog pašalinkite „.row“ iš pabaigos ir parašykite .address.

Sub getLastUsedRow () add = Cells (Rows.Count, 1). End (xlUp) .address 'Ši eilutė pasirenka paskutinį langelį stulpelyje Debug.print add End Sub

Diapazonas.Adresas funkcija grąžina aktyviosios ląstelės adresą.
Raskite paskutinį tuščią stulpelį eilutėje
Tai beveik tas pats, kas rasti paskutinę tuščią langelį stulpelyje. Čia gauname paskutinio langelio stulpelio numerį su duomenimis 4 eilutėje.

Sub getLastUsedCol () Dim last_col As Integer last_col = Ląstelės (4, Columns.Count). End (xlToLeft). Stulpelis „Ši eilutė gauna paskutinį stulpelį Debug.Print last_col End Sub


Paveikslėlyje matote, kad jis grąžina paskutinio tuščio langelio stulpelio numerį 4 eilutėje. Tai yra 4.
Kaip tai veikia?

Na, mechanika yra tokia pati, kaip rasti paskutinį langelį su duomenimis stulpelyje. Mes tiesiog panaudojome raktinius žodžius, susijusius su stulpeliais.
Pasirinkite „Excel“ duomenų rinkinį naudodami VBA
Dabar mes žinome, kaip gauti paskutinę „Excel“ eilutę ir paskutinį stulpelį naudojant VBA. Naudodami tai galime lengvai pasirinkti lentelę ar duomenų rinkinį. Pasirinkę duomenų rinkinį ar lentelę, galime su jais atlikti keletą operacijų, pavyzdžiui, kopijuoti-įklijuoti, formatuoti, ištrinti ir pan.
Čia mes turime duomenų rinkinį. Šie duomenys gali išsiplėsti žemyn. Fiksuojama tik pradinė ląstelė, kuri yra B4. Paskutinė eilutė ir stulpelis nėra fiksuoti. Turime dinamiškai pasirinkti visą lentelę naudodami vba.

VBA kodas, norint pasirinkti lentelę su tuščiais langeliais

Sub select_table () Dim last_row, last_col As Long 'Gauti paskutinę eilutę last_row = Ląstelės (Rows.Count, 2). End (xlUp). Row' Get last column last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column 'Pasirinkite visą lentelės diapazoną (Ląstelės (4, 2), Langeliai (paskutinė_eilė, paskutinis_skyris)). Pasirinkite Pabaigos antraštė

Kai tai vykdysite, visa lentelė bus pasirinkta per sekundės dalį. Galite pridėti naujų eilučių ir stulpelių. Jis visada pasirinks visus duomenis.

Šio metodo privalumai:

  1. Tai lengva. Mes tiesiog parašėme tik vieną eilutę, kad gautume paskutinę eilutę su duomenimis. Tai palengvina.
  2. Greitai. Mažiau kodo eilutės, mažiau laiko.
  3. Lengva suprasti.
  4. Puikiai veikia, jei turite gremėzdišką duomenų lentelę su fiksuotu pradžios tašku.

"Cons of Range". Pabaigos metodas:

  1. Pradinis taškas turi būti žinomas.
  2. Galite gauti tik paskutinį tuščią langelį žinomoje eilutėje ar stulpelyje. Kai jūsų pradžios taškas nėra nustatytas, jis bus nenaudingas. Kas labai retai atsitiks.

2. Raskite paskutinę eilutę naudodami funkciją Find ()
Pirmiausia pažiūrėkime kodą.

 Sub last_row () lastRow = ActiveSheet.Cells.Find ("*", searchorder: = xlByRows, searchdirection: = xlPrevious) .Row Debug.Print lastRow End Sub 


Kaip matote paveikslėlyje, šis kodas tiksliai grąžina paskutinę eilutę.
Kaip tai veikia?
Čia mes naudojame paieškos funkciją, norėdami rasti bet kurią ląstelę, kurioje yra bet koks daiktas, naudojant laukinių kortelių operatorių „*“. Žvaigždutė naudojama norint rasti bet ką, tekstą ar skaičių.

Mes nustatome paieškos tvarką pagal eilutes (paieškos tvarka: = xlByRows). Taip pat nurodome „Excel vba“ paieškos kryptį kaip xlPrevious (searchdirection: = xlPrevious). Tai leidžia rasti funkciją ieškoti iš lapo pabaigos, iš eilės. Radęs langelį, kuriame yra bet kas, jis sustoja. Mes naudojame „Range.Row“ metodą paskutinei eilutei gauti iš aktyvios ląstelės.

„Find“ funkcijos pranašumai norint gauti paskutinį langelį su duomenimis:

  1. Jums nereikia žinoti pradžios taško. Tai tik suteikia jums paskutinę eilę.
  2. Jis gali būti bendrinis ir gali būti naudojamas norint rasti paskutinį langelį su duomenimis bet kuriame lape be jokių pakeitimų.
  3. Gali būti naudojamas surasti bet kurį paskutinį konkretaus teksto ar skaičiaus atvejį lape.

Funkcijos „Find“ () trūkumai:

  1. Tai negražu. Per daug argumentų.
  2. Jis yra lėtas.
  3. Negalima naudoti paskutiniam tuščiam stulpeliui gauti. Techniškai galite. Bet tai tampa per lėta.

3. „SpecialCells“ funkcijos naudojimas paskutinei eilutei gauti
Funkcija SpecialCells su argumentu xlCellTypeLastCell grąžina paskutinį panaudotą langelį. Pirmiausia pažiūrėkime kodą

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.Specialiosios ląstelės (xlCellTypeLastCell).Row Debug.Print lastRow End Sub


Jei paleisite aukščiau pateiktą kodą, gausite paskutinio naudoto langelio eilutės numerį.

Kaip tai veikia?

Tai yra „Excel“ nuorodos „CTRL+End“ vba atitikmuo. Jis pasirenka paskutinį kartą naudojamą langelį. Jei įrašysite makrokomandą paspausdami CTRL+End, gausite šį kodą.

„Sub Macro1“ () „Macro1 Macro“ „ActiveCell. SpecialCells“ (xlLastCell). Pasirinkite Pabaigos antraštė 

Mes jį tiesiog panaudojome norėdami gauti paskutinio naudoto langelio eilutės numerį.

Pastaba: Kaip jau minėjau aukščiau, šis metodas grąžins paskutinį panaudotą langelį, o ne paskutinį langelį su duomenimis. Jei ištrinsite paskutinio langelio duomenis, virš vba kodo vis tiek bus pateikta ta pati ląstelių nuoroda, nes tai buvo „paskutinį kartą naudojamas langelis“. Norėdami gauti paskutinį langelį su duomenimis naudodami šį metodą, pirmiausia turite išsaugoti dokumentą.

Ištrinkite lapus be patvirtinimo raginimų naudodami „Microsoft Excel“ VBA

Pridėkite ir išsaugokite naują darbaknygę naudodami „Microsoft Excel 2016“ VBA

Rodyti pranešimą „Excel“ VBA būsenos juostoje

Išjunkite įspėjamuosius pranešimus naudodami VBA programoje „Microsoft Excel 2016“

Populiarūs straipsniai:

„VLOOKUP“ funkcija „Excel“

COUNTIF „Excel 2016“

Kaip naudoti „SUMIF“ funkciją „Excel“

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave