3 parasta tapaa löytää viimeinen tyhjä rivi ja sarake VBA: n avulla

Anonim

Viimeksi käytetyn rivin ja sarakkeen löytäminen on yksi perus- ja tärkeistä tehtävistä kaikille VBA: ta käyttäville Excel -automaatioille. Jos haluat koota arkkeja, työkirjoja ja järjestää tietoja automaattisesti, sinun on löydettävä taulukkojen tietojen raja.

Tässä artikkelissa selitetään kaikki menetelmät Excelin viimeisen rivin ja sarakkeen löytämiseksi helpoimmilla tavoilla.
1. Etsi viimeinen ei-tyhjä rivi sarakkeesta käyttämällä Range.End
Katsotaan ensin koodi. Selitän sen kirjeellä.

Sub getLastUsedRow () Dim last_row As Integer last_row = Solut (Rows.Count, 1). End (xlUp). Rivi "Tämä rivi saa viimeisen rivin virheenkorjauksen. Tulosta last_row End Sub

Yllä oleva osa löytää sarakkeen 1 viimeisen rivin.

Kuinka se toimii?
Se on aivan kuin menisi arkin viimeiselle riville ja painaisi sitten CTRL+UP -pikanäppäintä.
Solut (rivien määrä, 1): Tämä osa valitsee solun A -sarakkeessa.

Solut (1048576, 1)

.Loppu (xlUp): End on etäisyysluokan menetelmä, jota käytetään navigointiin arkeissa päihin. xlUp on muuttuja, joka kertoo suunnan. Yhdessä tämä komento valitsee viimeisen datarivin.

Solut (Rivien lukumäärä, 1). Loppu (xlUp)

.Rivi: rivi palauttaa valitun solun rivinumeron. Näin saamme viimeisen solun rivinumeron, jossa on tietoja sarakkeessa A. esimerkissä se on 8.

Katso, kuinka helppoa on löytää viimeiset tiedot sisältävät rivit. Tämä menetelmä valitsee datan viimeisen rivin riippumatta sitä edeltävistä tyhjistä soluista. Näet sen kuvassa, että vain solussa A8 on tietoja. Kaikki edelliset solut ovat tyhjiä paitsi A4.

Valitse viimeinen solu, jossa on tietoja sarakkeessa
Jos haluat valita A -sarakkeen viimeisen solun, poista ".row" lopusta ja kirjoita .select.

Sub getLastUsedRow () Solut (Rows.Count, 1) .End (xlUp) .Valitse 'Tämä rivi valitsee sarakkeen viimeisen solun End Sub

".Valitse" -komento valitsee aktiivisen solun.
Hae viimeisen solun osoite -sarake
Jos haluat saada viimeisen solun osoitteen A -sarakkeesta, poista ".row" lopusta ja kirjoita .address.

Sub getLastUsedRow () add = Solut (Rows.Count, 1) .End (xlUp) .address 'Tämä rivi valitsee sarakkeen viimeisen solun Debug.print lisää End Sub

Alue.Osoite -toiminto palauttaa aktiivisen solun osoitteen.
Etsi viimeinen ei-tyhjä sarake riviltä
Se on melkein sama kuin löytää viimeinen tyhjä solu sarakkeesta. Tässä saamme viimeisen solun sarakenumeron rivillä 4 olevilla tiedoilla.

Sub getLastUsedCol () Dim last_col As Integer last_col = Solut (4, Columns.Count) .End (xlToLeft) .Column 'Tämä rivi saa viimeisen sarakkeen Debug.Print last_col End Sub


Kuvasta näet, että se palauttaa viimeisen ei -tyhjän solun sarakenumeron rivillä 4. Joka on 4.
Kuinka se toimii?

No, mekaniikka on sama kuin löytää viimeinen solu, jossa on tietoja sarakkeesta. Olemme juuri käyttäneet sarakkeisiin liittyviä avainsanoja.
Valitse tietojoukko Excelissä VBA: n avulla
Nyt tiedämme, miten Excelin viimeinen rivi ja viimeinen sarake saadaan VBA: n avulla. Sen avulla voimme valita taulukon tai tietojoukon helposti. Tietojoukon tai taulukon valitsemisen jälkeen voimme tehdä niihin useita toimintoja, kuten kopioida, liittää, muotoilla, poistaa jne.
Tässä meillä on datajoukko. Nämä tiedot voivat laajentua alaspäin. Vain aloitussolu on kiinteä, joka on B4. Viimeinen rivi ja sarake ei ole kiinteä. Meidän on valittava koko taulukko dynaamisesti vba: n avulla.

VBA -koodi taulukon valitsemiseksi tyhjillä soluilla

Sub select_table () Dim last_row, last_col As Long "Hae viimeinen rivi last_row = Solut (Rows.Count, 2). End (xlUp). Rivi" Hae viimeinen sarake last_col = Solut (4, Columns.Count). End (xlToLeft) .Column 'Valitse koko taulukon alue (Solut (4, 2), Solut (viimeinen_rivi, viimeinen_koko)).

Kun suoritat tämän, koko taulukko valitaan sekunnin murto -osassa. Voit lisätä uusia rivejä ja sarakkeita. Se valitsee aina koko datan.

Tämän menetelmän edut:

  1. Se on helppoa. Kirjoitimme kirjaimellisesti vain yhden rivin saadaksemme viimeisen rivin tiedoilla. Tämä helpottaa.
  2. Nopeasti. Vähemmän koodiriviä, vähemmän aikaa.
  3. Helppo ymmärtää.
  4. Toimii täydellisesti, jos sinulla on kömpelö tietotaulukko, jossa on kiinteä lähtökohta.

Miinukset Range.End -menetelmästä:

  1. Lähtökohta on tiedettävä.
  2. Voit saada vain tunnetun rivin tai sarakkeen viimeisen ei-tyhjän solun. Kun lähtökohtasi ei ole kiinteä, se on hyödytön. Mikä on hyvin epätodennäköistä.

2. Etsi viimeinen rivi käyttämällä Find () -toimintoa
Katsotaan ensin koodi.

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


Kuten huomaat kuvassa, tämä koodi palauttaa viimeisen rivin tarkasti.
Kuinka se toimii?
Täällä käytämme etsintätoimintoa löytääksemme kaikki solut, jotka sisältävät mitä tahansa, käyttämällä jokerikorttioperaattoria "*". Asteriskia käytetään löytämään mitä tahansa, tekstiä tai numeroa.

Asetamme hakujärjestyksen riveittäin (hakujärjestys: = xlByRows). Kerromme myös Excel vba: lle haun suunnan xlPrevious (searchdirection: = xlPrevious). Se tekee etsintätoiminnon etsiäksesi taulukon lopusta rivikohtaisesti. Kun se löytää solun, joka sisältää mitä tahansa, se pysähtyy. Käytämme Range.Row -menetelmää hakemaan viimeisen rivin aktiivisesta solusta.

Etsi -toiminnon edut viimeisen solun saamiseksi tiedoilla:

  1. Sinun ei tarvitse tietää lähtökohtaa. Se vie sinut viimeiselle riville.
  2. Se voi olla yleinen ja sitä voidaan käyttää viimeisen solun löytämiseen missä tahansa taulukossa ilman muutoksia.
  3. Voidaan käyttää arkista tietyn tekstin tai numeron viimeisen esiintymän löytämiseen.

Haittoja Find () -toiminnosta:

  1. Se on rumaa. Liian monta argumenttia.
  2. Se on hidasta.
  3. Ei voi käyttää viimeisen tyhjän sarakkeen hakemiseen. Teknisesti voit. Mutta se menee liian hitaasti.

3. SpecialCells -toiminnon käyttäminen viimeisen rivin saamiseksi
SpecialCells -toiminto xlCellTypeLastCell -argumentilla palauttaa viimeksi käytetyn solun. Katsotaan ensin koodi

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell)Rivin virheenkorjaus Tulosta viimeinen Rivin loppuosa


Jos suoritat yllä olevan koodin, saat viimeksi käytetyn solun rivinumeron.

Kuinka se toimii?

Tämä on Excelin pikanäppäimen CTRL+End vba -vastine. Se valitsee viimeksi käytetyn solun. Jos tallennat makron samalla kun painat CTRL+End, saat tämän koodin.

Alamakro1 () '' Makro1 -makro '' ActiveCell.SpecialCells (xlLastCell) Valitse Loppuosa 

Käytimme sitä vain saadaksesi viimeksi käytetyn solun rivinumeron.

Huomautus: Kuten edellä sanoin, tämä menetelmä palauttaa viimeksi käytetyn solun, ei viimeisen solun, jossa on tietoja. Jos poistat tiedot viimeisestä solusta, yllä oleva vba -koodi palauttaa edelleen saman soluviittauksen, koska se oli "viimeksi käytetty solu". Sinun on ensin tallennettava asiakirja, jotta saat viimeisen datan sisältävän solun tällä menetelmällä.

Poista taulukot ilman vahvistuskehotteita käyttämällä VBA: ta Microsoft Excelissä

Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016: ssa

Näytä viesti Excel VBA -tilapalkissa

Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016: ssa

Suosittuja artikkeleita:

VLOOKUP -toiminto Excelissä

COUNTIF Excel 2016: ssa

SUMIF -toiminnon käyttäminen Excelissä