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: як видалити повторювані значення в діапазоні