3 най-добри начина да намерите последния непразен ред и колона с помощта на VBA

Съдържание

Намирането на последно използван ред и колона е една от основните и важни задачи за всяка автоматизация в Excel с помощта на VBA. За да съставяте листове, работни книги и да подреждате данни автоматично, трябва да намерите ограничението за данни на листове.

Тази статия ще обясни всеки метод за намиране на последния ред и колона в Excel по най -лесните начини.
1. Намерете последния непразен ред в колона, използвайки Range.End
Нека първо да видим кода. Ще обясня писмото.

Sub getLastUsedRow () Dim last_row As Integer last_row = Клетки (Rows.Count, 1) .End (xlUp) .Row „Този ​​ред получава последния ред Debug.Print last_row End Sub

Горната част намира последния ред в колона 1.

Как работи?
Това е все едно да отидете на последния ред в листа и след това да натиснете клавишната комбинация CTRL+НАГОРЕ.
Клетки (ред, брой, 1): Тази част избира клетка в колона A. Rows.Count дава 1048576, което обикновено е последният ред в Excel лист.

Клетки (1048576, 1)

.Край (xlUp): End е метод от клас range, който се използва за навигация в листове до краища. xlUp е променливата, която казва посоката. Заедно тази команда избира последния ред с данни.

Клетки (редове. Брой, 1). Край (xlUp)

.Ред: ред връща номера на реда на избраната клетка. Следователно получаваме номера на реда на последната клетка с данни в колона А. в нашия пример той е 8.

Вижте колко лесно е да намерите последните редове с данни. Този метод ще избере последния ред в данните, независимо от празните клетки преди него. Можете да видите, че на изображението само клетка A8 има данни. Всички предходни клетки са празни, с изключение на А4.

Изберете последната клетка с данни в колона
Ако искате да изберете последната клетка в колона А, просто премахнете „.row“ от края и напишете .select.

Sub getLastUsedRow () Клетки (Rows.Count, 1) .End (xlUp). Изберете „Този ​​ред избира последната клетка в колона End Sub

Командата “.Select” избира активната клетка.
Вземете колоната с адреса на последната клетка
Ако искате да получите адреса на последната клетка в колона, просто премахнете „.row“ от края и напишете .address.

Sub getLastUsedRow () add = Cells (Rows.Count, 1) .End (xlUp) .address „Този ​​ред избира последната клетка в колона Debug.print add End Sub

Обхватът.Адрес функцията връща адреса на активната клетка.
Намерете последната непразна колона в ред
Това е почти същото като намирането на последната непразна клетка в колона. Тук получаваме номер на колона от последната клетка с данни в ред 4.

Sub getLastUsedCol () Dim last_col As Integer last_col = Cells (4, Columns.Count) .End (xlToLeft) .Column ‘Този ред получава последната колона Debug.Print last_col End Sub


Можете да видите на изображението, че връща номера на колоната на последната непразна клетка в ред 4. Което е 4.
Как работи?

Е, механиката е същата като намирането на последната клетка с данни в колона. Просто използвахме ключови думи, свързани с колони.
Изберете Набор от данни в Excel с помощта на VBA
Сега знаем как да получим последния ред и последната колона на Excel с помощта на VBA. Използвайки това, ние можем лесно да изберем таблица или набор от данни. След като изберете набор от данни или таблица, можем да извършим няколко операции върху тях, като копиране-поставяне, форматиране, изтриване и т.н.
Тук имаме набор от данни. Тези данни могат да се разширят надолу. Фиксирана е само началната клетка, която е В4. Последният ред и колона не са фиксирани. Трябва да избираме цялата таблица динамично, използвайки vba.

VBA код за избор на таблица с празни клетки

Sub select_table () Dim last_row, last_col As Long 'Вземете последния ред last_row = Клетки (Rows.Count, 2). End (xlUp) .Row' Вземете последната колона last_col = Cells (4, Columns.Count). End (xlToLeft) .Колона 'Изберете целия диапазон на таблицата (клетки (4, 2), клетки (last_row, last_col)). Изберете End Sub

Когато изпълните това, цялата таблица ще бъде избрана за част от секундата. Можете да добавяте нови редове и колони. Той винаги ще избира всички данни.

Предимства на този метод:

  1. Това е лесно. Ние буквално написахме само един ред, за да получим последния ред с данни. Това го прави лесно.
  2. Бърз. По -малко ред код, по -малко време.
  3. Лесно за разбиране.
  4. Работи перфектно, ако имате тромава таблица с данни с фиксирана начална точка.

Недостатъци на Range.End метод:

  1. Изходната точка трябва да се знае.
  2. Можете да получите само последната непразна клетка в известен ред или колона. Когато началната ви точка не е фиксирана, тя ще бъде безполезна. Което е много по -малко вероятно да се случи.

2. Намерете последния ред, като използвате функцията Find ()
Нека първо да видим кода.

 Sub last_row () lastRow = ActiveSheet.Cells.Find ("*", ред на търсене: = xlByRows, searchdirection: = xlPrevious) .Row Debug.Print lastRow End Sub 


Както можете да видите в изображението, този код връща точно последния ред.
Как работи?
Тук използваме функцията за намиране, за да намерим всяка клетка, която съдържа каквото и да е, използвайки оператор на заместваща карта "*". Звездичката се използва за намиране на всичко, текст или номер.

Задаваме ред на търсене по редове (ред на търсене: = xlByRows). Също така казваме на excel vba посоката на търсене като xlPrevious (searchdirection: = xlPrevious). Това прави функцията за търсене за търсене от края на листа, по ред. След като намери клетка, която съдържа нещо, тя спира. Използваме метода Range.Row, за да извлечем последния ред от активната клетка.

Предимства на функцията Find за получаване на последната клетка с данни:

  1. Не е нужно да знаете началната точка. Просто ще получите последния ред.
  2. Тя може да бъде обща и може да се използва за намиране на последната клетка с данни във всеки лист без никакви промени.
  3. Може да се използва за намиране на последен екземпляр от конкретен текст или номер на листа.

Недостатъци на функцията Find ():

  1. Грозно е. Твърде много аргументи.
  2. Това е бавно.
  3. Не може да се използва за получаване на последната непразна колона. Технически можете. Но става твърде бавно.

3. Използване на функцията SpecialCells за получаване на последния ред
Функцията SpecialCells с аргумент xlCellTypeLastCell връща последната използвана клетка. Нека първо да видим кода

Sub spl_last_row_ () lastRow = ActiveSheet.Cells.Специални клетки (xlCellTypeLastCell).Rew Debug.Print lastRow End Sub


Ако изпълните горния код, ще получите номер на ред на последната използвана клетка.

Как работи?

Това е еквивалентът на vba на прекия път CTRL+End в Excel. Той избира последната използвана клетка. Ако запишете макроса, докато натискате CTRL+End, ще получите този код.

Sub Macro1 () '' Macro1 Macro '' ActiveCell.SpecialCells (xlLastCell). Изберете End Sub 

Току -що го използвахме, за да получим номера на ред на последната използвана клетка.

Забележка: Както казах по -горе, този метод ще върне последната използвана клетка, а не последната клетка с данни. Ако изтриете данните в последната клетка, по -горе кодът vba ще върне същата препратка към клетките, тъй като това беше „последната използвана клетка“. Първо трябва да запишете документа, за да получите последната клетка с данни, използвайки този метод.

Изтриване на листове без подкани за потвърждение с помощта на VBA в Microsoft Excel

Добавяне и запазване на нова работна книга с помощта на VBA в Microsoft Excel 2016

Показване на съобщение в лентата за състоянието на Excel VBA

Изключете предупредителните съобщения с помощта на VBA в Microsoft Excel 2016

Популярни статии:

Функцията VLOOKUP в Excel

COUNTIF в Excel 2016

Как да използвате функцията SUMIF в Excel

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave