Vba: як знайти останній використаний рядок


Ви можете використовувати такий базовий синтаксис у VBA, щоб знайти останній використаний рядок на аркуші Excel:

 Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub

У цьому конкретному прикладі виконується пошук останнього рядка, який використовується на поточному аркуші, і повертається результат у клітинці D2 .

Якщо натомість потрібно відобразити останній рядок вікна повідомлення, можна використати такий синтаксис:

 Sub FindLastRow()
Dim LastRow As Long
    
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row

MsgBox " Last Row: " & LastRow
End Sub

Наступні приклади показують, як використовувати кожен із цих методів на практиці.

Приклад 1. Знайдіть останній рядок за допомогою VBA та відобразіть результати в клітинці

Припустімо, у нас є такий набір даних у Excel, який містить інформацію про різних баскетболістів:

Ми можемо створити наступний макрос, щоб знайти останній рядок, використаний на цьому аркуші Excel, і відобразити результат у клітинці D2 :

 Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зверніть увагу, що клітинка D2 містить значення 11 .

Це говорить нам, що останній рядок, який використовується на цьому аркуші, – це рядок 11.

Варто також зазначити, що якщо перед використаною клітинкою є порожні клітинки, цей макрос завжди знаходитиме останній використаний рядок.

Наприклад, припустімо, що ми запускаємо макрос на такому наборі даних:

Комірка D2 містить значення 16 , оскільки це останній рядок, що містить значення.

Приклад 2: знайдіть останній рядок за допомогою VBA та відобразіть результати у вікні повідомлення

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

Для цього ми можемо створити такий макрос:

 Sub FindLastRow()
Dim LastRow As Long
    
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row

MsgBox " Last Row: " & LastRow
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Вікно повідомлення повідомляє нам, що останній рядок аркуша – це рядок 11 .

Примітка . Ви можете знайти повну документацію для методу пошуку VBA тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: як обчислити середнє значення діапазону
VBA: як підрахувати кількість рядків у діапазоні
VBA: як видалити повторювані значення в діапазоні

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *