Пошук останнього рядка з даними в діапазоні за допомогою макросів Excel VBA (7 способів)

  • Поділитися Цим
Hugh West

При роботі з Microsoft Excel пошук останніх рядків або стовпців є поширеним завданням. Ми використовуємо клавіатуру для пошуку останніх використаних рядків або стовпців. Але, ви можете опинитися в ситуації, коли вам потрібно знайти останній використаний рядок зі складного набору даних. У цьому уроці ви навчитеся знаходити останній рядок з даними в діапазоні за допомогою VBA в Excel з практичними прикладами та відповідними ілюстраціями.

Завантажити Практичний посібник

Завантажте цей робочий зошит з практики.

Пошук останнього використаного рядка в діапазоні.xlsm

7 способів пошуку останнього рядка з даними в діапазоні за допомогою макросів Excel VBA

У наступних розділах ми розглянемо сім методів, які допоможуть вам знайти останній рядок з даними в діапазоні за допомогою VBA в Excel. Рекомендуємо вам вивчити і застосувати всі ці методи, щоб збагатити свої знання в Excel.

📕 Читати далі : Пошук останньої комірки зі значенням у рядку в Excel (6 методів)

Для демонстрації цього підручника ми будемо використовувати цей набір даних:

Тут у нас є набір даних, що складається з інформації про деяких гравців. Ми будемо використовувати його, щоб навчити вас усім методам.

Відкрити редактор VBA

Перш ніж ми почнемо, нагадаємо, як відкрити редактор VBA в Excel.

Спочатку натисніть Alt+F11 на клавіатурі. Потім виберіть Вставка> Модуль. Після цього відкриється VBA-редактор Excel.

1. використання властивості Range.End для пошуку останнього рядка з даними в діапазоні засобами VBA

Тепер цей метод в основному знаходить кінець діапазону. В основному, останній використаний діапазон комірок. Ми можемо використовувати цей метод для пошуку останнього рядка з даними в заданому діапазоні. Використання VBA дасть вам бажані результати.

📌 Кроки

По-перше, відкрийте VBA Редактор.

Потім введіть наступний код:

 Sub range_end_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = Range("B4").End(xlDown).Row MsgBox "Останній використаний рядок: " & LastRow End Sub 

Тепер збережіть файл, після чого натисніть Alt+F8 щоб відкрити діалогове вікно Макрос. Виберіть метод_кінця_діапазону

Після цього натисніть на кнопку "Виконати".

Як бачимо, ми успішно знайшли останній рядок з даними в діапазоні за допомогою VBA в Excel.

2. Властивість Range.Find функції VBA в Excel

Для пошуку конкретного значення з набору даних в VBA ми використовуємо метод Range.Find. Але цей метод стане в нагоді і для пошуку останнього рядка з даними в діапазоні. Він працює подібно до діалогового вікна Find & Replace в Excel. Метод Range. Find має багато аргументів, але ми не будемо використовувати їх всі.

Перш ніж використовувати метод Range.Find, давайте надамо вам коротку інформацію:

Cells.Find("*", порядок пошуку:=xlByRows, напрямок пошуку:=xlPrevious)

Що := "*" - Зірочка - це символ підстановки, який виявляє будь-який текст або число в комірці. Це в основному те ж саме, що і пошук непустої комірки.

Порядок пошуку:=xlByRows - Це означає, що Finding переглядає весь рядок, перш ніж перейти до наступного. Пошук здійснюється зліва направо або справа наліво в залежності від аргументу SearchDirection. Додатковою опцією тут є xlByColumns, яка використовується при знаходженні останнього стовпчика.

Напрямок пошуку:=xlПопередній - Це визначає, в якому напрямку досліджувати. xlPrevious означає, що він буде шукати справа наліво або знизу вгору. Іншою альтернативою є xlNext, який зміщується в протилежному напрямку.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub range_find_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.Find("*", order of search:=xlByRows, searchdirection:=xlPrevious).Row MsgBox "Останній використаний рядок: " & LastRow End Sub 

Тепер збережіть файл і натисніть Alt+F8, щоб відкрити діалогове вікно Макрос. Виберіть метод_знаходження_діапазону.

Після цього натисніть на кнопку Біжи .

Зрештою, він знайде останній рядок з даними на нашому аркуші Excel.

3. використання функції SpecialCells для пошуку останнього рядка засобами VBA

Цей метод працює як пресування Ctrl+End При натисканні Ctrl+End на клавіатурі ви завжди перейдете до останнього рядка, де б ви не знаходилися. Але якщо ви хочете знайти останній використаний рядок з даними за допомогою VBA-кодів в Excel, то цей код вам просто необхідний.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub specialcells_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox "Останній використаний рядок: " & LastRow End Sub 

Тепер збережіть файл і натисніть Alt+F8, щоб відкрити діалогове вікно Макрос. Виберіть specialcells_method .

Після цього натисніть на кнопку Біжи .

Як бачимо, ми успішно знаходимо останній рядок з даними за допомогою VBA в Excel.

4. використання функції UsedRange для пошуку останнього рядка з даними в діапазоні

Використаний діапазон у VBA - це властивість робочого аркуша, яка повертає об'єкт діапазону, що представляє використаний діапазон (всі комірки Excel, що використовуються або завантажуються на аркуші) на певному аркуші. Це властивість, що означає область, охоплену або визначену верхніми лівими використаними комірками та останніми правими використаними комірками на робочому аркуші.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub usedRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row MsgBox "Останній використаний рядок: " & LastRow End Sub 

Тепер збережіть файл і натисніть Alt+F8, щоб відкрити діалогове вікно Макрос. Виберіть використаний_метод_діапазону.

Після цього натисніть на кнопку Біжи .

Нарешті, ви побачите останній використаний рядок на робочому аркуші в Excel успішно.

5. використання табличного діапазону за допомогою VBA в Excel

Якщо у вас є таблиця на робочому аркуші, ви можете знайти останній рядок з даними за допомогою цього методу.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub TableRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.ListObjects("Table1").Range.Rows.Count + 3 MsgBox "Останній використаний рядок: " & LastRow End Sub 

Примітка Тут ми додаємо 3 до останнього рядка, оскільки наш набір даних починається після рядка 3.

Тепер збережіть файл і натисніть Alt+F8, щоб відкрити діалогове вікно Макрос. Виберіть TableRange_метод.

Після цього натисніть на кнопку Біжи .

Як бачимо, ми успішно використали метод діапазону таблиці в кодах VBA для пошуку останнього рядка з даними в Excel.

6. використання іменованого діапазону для пошуку останнього рядка з даними в діапазоні

Цей метод не дуже часто використовується в Excel, але ми вважаємо, що вам варто його вивчити, щоб збагатити свої знання.

Якщо у вашому наборі даних є іменований діапазон, ви можете використовувати цей код. Подивіться на наступний скріншот, в ньому є іменований діапазон.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub nameRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("Named_Range").Rows.Count + 1 MsgBox "останній використаний рядок: " & LastRow End Sub 

Примітка : Ми додаємо 1 до LastRow, тому що наш діапазон починається після рядка 1.

Тепер збережіть файл, після чого натисніть Alt+F8 щоб відкрити діалогове вікно Макрос. Виберіть ім'я_методу_діапазону.

Після цього натисніть на кнопку "Виконати".

Як бачимо, нам вдалося знайти останній рядок з даними за допомогою VBA.

7. функція CurrentRegion VBA в Excel

Ви також можете використовувати метод CurrentRegion в VBA, щоб знайти останній використаний рядок в Excel. Хоча це складно, ви можете використовувати це на свою користь, якщо хочете.

📌 Кроки

Спочатку відкриваємо редактор VBA.

Потім введіть наступний код:

 Sub CurrentRegion_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("B4").CurrentRegion.Rows.Count + 3 'додаємо числа на свій вибір' MsgBox "Останній використаний рядок: " & LastRow End Sub 

Примітка Діапазон повинен бути першою коміркою Вашого набору даних. І додайте номер рядка відповідно до Вашого вибору. Тут ми додали 3, тому що наш набір даних починається після рядка 3.

Тепер збережіть файл і натисніть Alt+F8, щоб відкрити діалогове вікно Макрос. Виберіть CurrentRegion_метод

Після цього натисніть на кнопку "Виконати".

Як бачимо, ми успішно знайшли останній рядок з даними за допомогою коду VBA.

💬 Що варто пам'ятати

Range.End працює тільки для одного рядка або стовпця. Якщо ваш набір даних містить багато порожніх комірок, буде важко знайти останній рядок з даними.

Іноді для безперебійної роботи коду потрібно додати деякі значення до методів. Ми додали номери рядків, щоб знайти останню комірку. Отже, вам потрібно пам'ятати, звідки починався ваш набір даних.

Висновок

На закінчення, я сподіваюся, що цей урок надав вам корисні знання про пошук останнього рядка з даними в діапазоні за допомогою VBA в Excel. Ми рекомендуємо вам вивчити і застосувати всі ці інструкції до вашого набору даних. Завантажте практичний посібник і спробуйте їх самостійно. Також не соромтеся залишати відгуки в розділі коментарів. Ваші цінні відгуки мотивують нас створювати подібні уроки.

Не забувайте слідкувати за новинами на нашому сайті Exceldemy.com для вирішення різних проблем, пов'язаних з Excel, та їх вирішення.

Вчіться новим методам і продовжуйте розвиватися!

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.