3 labākie veidi, kā atrast pēdējo rindu un kolonnu, kas nav tukša, izmantojot VBA

Anonim

Pēdējās lietotās rindas un kolonnas atrašana ir viens no pamatuzdevumiem jebkurai automatizācijai programmā Excel, izmantojot VBA. Lai automātiski apkopotu lapas, darbgrāmatas un sakārtotu datus, jums ir jāatrod lapas ierobežojums.

Šis raksts izskaidros visas metodes, kā vienkāršākajā veidā atrast Excel pēdējo rindu un kolonnu.
1. Atrodiet pēdējo rindu, kas nav tukša, kolonnā, izmantojot Range.End
Vispirms apskatīsim kodu. Es paskaidrošu vēstuli.

Sub getLastUsedRow () Dim last_row As Integer last_row = Cells (Rows.Count, 1). End (xlUp). Rinda 'Šī rinda saņem pēdējo rindu atkļūdošanu. Drukāt last_row End Sub

Iepriekš minētā apakšpozīcija atrod pēdējo kolonnu 1 rindā.

Kā tas strādā?
Tas ir tāpat kā iet uz lapas pēdējo rindu un pēc tam nospiest taustiņu kombināciju CTRL+UP.
Šūnas (rindu skaits, 1): Šī daļa atlasa šūnu A slejā. Rindas. Skaitlis dod 1048576, kas parasti ir Excel lapas pēdējā rinda.

Šūnas (1048576, 1)

.Beigas (xlUp): Beigas ir diapazona klases metode, ko izmanto, lai pārvietotos pa lapām līdz galam. xlUp ir mainīgais, kas norāda virzienu. Kopā šī komanda atlasa pēdējo rindu ar datiem.

Šūnas (Rows.Count, 1). End (xlUp)

.Rinda: rinda atgriež atlasītās šūnas rindas numuru. Tādējādi mēs iegūstam pēdējās šūnas rindas numuru ar datiem kolonnā A. piemērā tas ir 8.

Skatiet, cik viegli ir atrast pēdējās rindas ar datiem. Šī metode atlasīs pēdējo datu rindu neatkarīgi no tukšajām šūnām pirms tās. Attēlā redzams, ka tikai šūnā A8 ir dati. Visas iepriekšējās šūnas ir tukšas, izņemot A4.

Atlasiet pēdējo šūnu ar datiem kolonnā
Ja vēlaties atlasīt pēdējo kolonnu A šūnā, tad vienkārši noņemiet “.row” no beigām un uzrakstiet .select.

Sub getLastUsedRow () Cells (Rows.Count, 1). End (xlUp). Atlasiet “Šī rinda atlasa pēdējo šūnu kolonnā End Sub”

Komanda “.izvēlēties” atlasa aktīvo šūnu.
Iegūstiet pēdējās šūnas adreses kolonnu
Ja vēlaties A slejā iegūt pēdējās šūnas adresi, tad vienkārši noņemiet “.row” no beigām un ierakstiet .address.

Sub getLastUsedRow () add = Cells (Rows.Count, 1). End (xlUp) .address ‘Šī rinda atlasa pēdējo šūnu kolonnā Debug.print pievienot End Sub

Diapazons.Adrese funkcija atgriež aktīvās šūnas adresi.
Atrodiet rindā pēdējo tukšo kolonnu
Tas ir gandrīz tas pats, kas atrast pēdējo šūnu, kas nav tukša. Šeit mēs iegūstam pēdējās šūnas kolonnas numuru ar datiem 4. rindā.

Sub getLastUsedCol () Dim last_col Kā vesels skaitlis last_col = Šūnas (4, Columns.Count). End (xlToLeft). Kolonna “Šī rinda saņem pēdējo kolonnu Atkļūdošana. Drukāt last_col End Sub


Attēlā redzams, ka tas atgriež pēdējās tukšās šūnas kolonnas numuru 4. rindā. Kas ir 4.
Kā tas strādā?

Mehānika ir tāda pati kā atrast pēdējo šūnu ar datiem kolonnā. Mēs vienkārši esam izmantojuši atslēgvārdus, kas saistīti ar kolonnām.
Programmā Excel atlasiet datu kopu, izmantojot VBA
Tagad mēs zinām, kā iegūt pēdējo Excel rindu un pēdējo kolonnu, izmantojot VBA. Izmantojot to, mēs varam viegli izvēlēties tabulu vai datu kopu. Pēc datu kopas vai tabulas izvēles mēs varam ar tām veikt vairākas darbības, piemēram, kopēt-ielīmēt, formatēt, dzēst utt.
Šeit mums ir datu kopa. Šie dati var paplašināties uz leju. Fiksēta ir tikai sākuma šūna, kas ir B4. Pēdējā rinda un kolonna nav fiksēta. Mums ir dinamiski jāizvēlas visa tabula, izmantojot vba.

VBA kods, lai atlasītu tabulu ar tukšām šūnām

Sub select_table () Dim last_row, last_col As Long 'Iegūt pēdējo rindu last_row = Šūnas (Rows.Count, 2). End (xlUp). Rinda' Get last column last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column 'Atlasiet visu tabulas diapazonu (šūnas (4, 2), šūnas (pēdējā_rinda, pēdējā_kopa)). Atlasiet beigu apakšdaļu

Palaižot to, visa tabula tiks atlasīta sekundes daļā. Varat pievienot jaunas rindas un kolonnas. Tas vienmēr atlasīs visus datus.

Šīs metodes priekšrocības:

  1. Tas ir viegli. Mēs burtiski uzrakstījām tikai vienu rindiņu, lai iegūtu pēdējo rindu ar datiem. Tas padara to vieglu.
  2. Ātri. Mazāk koda rindas, mazāk laika.
  3. Viegli saprast.
  4. Lieliski darbojas, ja jums ir neveikla datu tabula ar fiksētu sākuma punktu.

Mīnusi diapazonā. Beigu metode:

  1. Sākuma punkts ir jāzina.
  2. Jūs varat iegūt tikai pēdējo šūnu, kas nav tukša, zināmā rindā vai kolonnā. Ja jūsu sākuma punkts nav fiksēts, tas būs bezjēdzīgi. Kas, visticamāk, nenotiks.

2. Atrodiet pēdējo rindu, izmantojot funkciju Find ()
Vispirms apskatīsim kodu.

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


Kā redzat attēlā, šis kods precīzi atgriež pēdējo rindu.
Kā tas strādā?
Šeit mēs izmantojam atrašanas funkciju, lai atrastu jebkuru šūnu, kurā ir jebkura lieta, izmantojot aizstājējzīmju operatoru "*". Zvaigznīti izmanto, lai atrastu jebko, tekstu vai numuru.

Mēs iestatām meklēšanas secību pēc rindām (meklēšanas secība: = xlByRows). Mēs arī sakām Excel vba meklēšanas virzienu kā xlPrevious (searchdirection: = xlPrevious). Tas padara meklēšanas funkciju, lai meklētu no lapas beigām rindu ziņā. Kad tā atrod šūnu, kurā ir kaut kas, tā apstājas. Mēs izmantojam Range.Row metodi, lai ielādētu pēdējo rindu no aktīvās šūnas.

Funkcijas Find priekšrocības, lai iegūtu pēdējo šūnu ar datiem:

  1. Jums nav jāzina sākuma punkts. Tas tikai noved pie pēdējās rindas.
  2. Tas var būt vispārīgs un to var izmantot, lai atrastu pēdējo šūnu ar datiem jebkurā lapā bez izmaiņām.
  3. Var izmantot, lai uz lapas atrastu jebkuru konkrēta teksta vai numura pēdējo gadījumu.

Funkcijas Find () mīnusi:

  1. Tas ir neglīts. Pārāk daudz argumentu.
  2. Tas ir lēns.
  3. Nevar izmantot, lai iegūtu pēdējo sleju, kas nav tukša. Tehniski jūs varat. Bet tas kļūst pārāk lēns.

3. Izmantojot funkciju SpecialCells, lai iegūtu pēdējo rindu
Funkcija SpecialCells ar argumentu xlCellTypeLastCell atgriež pēdējo izmantoto šūnu. Vispirms apskatīsim kodu

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell). Rindas atkļūdošana. Drukāt pēdējo Rindas beigu apakšdaļa


Palaižot iepriekš minēto kodu, jūs iegūsit pēdējās izmantotās šūnas rindas numuru.

Kā tas strādā?

Tas ir vba ekvivalents saīsnei CTRL+End programmā Excel. Tas atlasa pēdējo izmantoto šūnu. Ja ierakstāt makro, vienlaikus nospiežot CTRL+End, jūs saņemsiet šo kodu.

Sub Macro1 () "Macro1 Macro" ActiveCell. SpecialCells (xlLastCell). Atlasiet beigu apakšdaļu 

Mēs to vienkārši izmantojām, lai iegūtu pēdējās lietotās šūnas rindas numuru.

Piezīme: Kā es teicu iepriekš, šī metode atgriezīs pēdējo izmantoto šūnu, nevis pēdējo šūnu ar datiem. Ja izdzēšat datus pēdējā šūnā, virs vba koda joprojām tiks parādīta tā pati šūnu atsauce, jo tā bija “pēdējā lietotā šūna”. Lai iegūtu pēdējo šūnu ar datiem, izmantojot šo metodi, vispirms jāsaglabā dokuments.

Izdzēsiet lapas bez apstiprinājuma uzvednēm, izmantojot Microsoft Excel VBA

Pievienojiet un saglabājiet jaunu darbgrāmatu, izmantojot VBA programmā Microsoft Excel 2016

Parādiet ziņojumu Excel VBA statusa joslā

Izslēdziet brīdinājuma ziņojumus, izmantojot VBA programmā Microsoft Excel 2016

Populāri raksti:

Funkcija VLOOKUP programmā Excel

COUNTIF programmā Excel 2016

Kā lietot SUMIF funkciju programmā Excel