Останній рядок VBA - Як знайти останній рядок у Excel за допомогою коду VBA?

Зміст:

Anonim

Excel VBA Last Row

Пошук останнього рядка у стовпці є важливим аспектом написання макросів та їхнього динамічного розвитку. Оскільки ми не вважаємо за краще оновлювати діапазон комірок раз у раз, коли ми працюємо з посиланнями на комірки Excel. Будучи кодером / розробником, ви завжди вважаєте за краще написати динамічний код, який може бути використаний на будь-яких даних і достатнім вашим вимогам. Більше того, завжди було б здорово, якби у вас був останній рядок, відомий про ваші дані, щоб ви могли динамічно змінювати код відповідно до вашої потреби.

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

Припустимо, у мене є дані, наведені нижче, щодо працівників та їх зарплат.

І подивіться на наведений нижче код:

Код:

 Sub Example1 () Діапазон ("D2"). Значення = WorkheetFunction.Sum (Діапазон ("B2: B11")) Кінець Sub 

Тут цей код друкує суму заробітної плати для всіх працівників (клітина B2: B11 ) у комірці D2 . Дивіться зображення нижче:

Тепер, що робити, якщо я додати в ці дані кілька комірок і запустити цей код ще раз?

Логічно кажучи, вищевказаний код не буде підсумовувати всі 14 рядків із стовпця B. Причиною того ж є діапазон, який ми оновили під «WorksheetFunction» (це B2: B11). Це причина, що для нас важливішим є динамічний код, який може враховувати останній заповнений рядок.

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

Як знайти останній використаний рядок у стовпці за допомогою VBA?

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

Ви можете завантажити цей шаблон Excel для останнього ряду VBA тут - Шаблон Excel з останнім рядком VBA

Приклад №1 - Використання методу Range.End ()

Ну, цей спосіб такий же, як використання Ctrl + стрілка вниз в Excel для переходу до останнього не порожнього рядка. У подібних рядках виконайте наведені нижче кроки для створення коду в VBA, щоб дійти до останнього не порожнього рядка стовпця в Excel.

Крок 1: Визначте змінну, яка може приймати значення для останнього не порожнього рядка стовпця Excel.

Код:

 Sub Example2 () Dim Last_Row As Long End Sub 

Тут змінна Last_Row визначається як LONG просто для того, щоб переконатися, що вона може приймати будь-яку кількість аргументів.

Крок 2: Використовуйте визначену змінну, щоб утримувати значення останнього не порожнього рядка.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = End Sub 

Крок 3: Введіть код, починаючи з CELLS (Rows.Count перед Last_Row = .

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub 

Крок 4: Згадайте 1 після коми у згаданому вище коді. Значення числове значення 1 - це синоніми до першого стовпця на аркуші excel.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub 

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

Тепер, що робити, якщо ви знаходитесь в останній комірці excel і хочете перейти до останнього не порожнього ряду? Ви будете використовувати Ctrl + стрілку вгору, правда?

Та ж логіка, яку ми будемо використовувати в наступному рядку коду.

Крок 5: Використовуйте комбінацію клавіші End і xlUp, щоб перейти до останнього не порожнього рядка в excel.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) Кінець Sub 

Це відведе вас до останнього не порожнього ряду у програмі excel. Однак ви хотіли номер рядка для того ж.

Крок 6: Використовуйте ROW, щоб отримати номер рядка останнього не порожнього рядка.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub 

Крок 7: Покажіть значення Last_Row, яке містить останній не порожній номер рядка, використовуючи MsgBox.

Код:

 Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Крок 8: Запустіть код за допомогою кнопки «Виконати» або натиснувши F5 і подивіться вихід.

Вихід:

Крок 9: Тепер видалимо один рядок і подивимося, чи код дає точний результат чи ні. Це допоможе нам перевірити динамічність нашого коду.

Приклад №2 - Використання діапазонів і Спеціальних комірок

Ми також можемо використовувати властивість Range та SepcialCells VBA, щоб отримати останній не порожній рядок листа excel.

Виконайте наведені нижче дії, щоб отримати останній не порожній рядок у excel, використовуючи код VBA:

Крок 1. Визначте змінну ще раз як Довга.

Код:

 Sub Example3 () Dim Last_Row As Long End Sub 

Крок 2: Почніть зберігати значення до змінної Last_Row за допомогою оператора присвоєння.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = End Sub 

Крок 3: Почніть діапазон набору тексту ("A: A") .

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Діапазон ("A: A") Кінець Sub 

Крок 4: Використовуйте функцію SpecialCells, щоб дізнатись останню непусту клітинку.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Довгий Last_Row = Діапазон ("A: A"). SpecialCells (xlCellTypeLastCell) Кінець Sub 

Ця функція SpecialCells вибирає останню клітинку з вашої програми excel, оскільки вона написана в дужках ( xlCellTypeLastCell дозволяє вибрати останню не порожню клітинку з вашого листа excel).

Крок 5. Тепер скористайтеся клавішею ROW, щоб отримати останній рядок з листа excel.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row As Long Last_Row = Діапазон ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Це поверне для вас останній не порожній рядок від вашої першокласної роботи.

Крок 6: Тепер призначте це значення Last_Row MsgBox, щоб ми могли побачити останній не порожній номер рядка у вікні повідомлення.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row As Long Last_Row = Діапазон ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Крок 7: Запустіть код, натиснувши клавішу F5 або кнопку «Запустити», розміщену вгорі лівого кута.

Вихід:

Ви можете бачити, що останній не порожній номер комірки вискакує через MsgBox з посиланням на стовпець А. Оскільки ми згадали стовпець А під функцією Range, визначаючи формулу змінної.

Крок 8: Якщо ми видалимо рядок і можемо запустити цю формулу. Подивимося, що станеться.

Ви можете бачити, що система як і раніше нараховує кількість рядків як 14. Хоча я видалив рядок і фактичний кількість рядків - 13, система не зафіксувала точно кількість рядків. Щоб система фіксувала фактичну кількість рядків, потрібно зберегти робочий аркуш і запустити код ще раз.

Ви можете бачити, що зараз на цьому скріншоті відображається фактична кількість рядків.

Приклад №3 - Використання Range.Find ()

Виконайте наведені нижче дії, щоб отримати останній не порожній рядок у excel, використовуючи код VBA:

Крок 1. Визначте змінну як довгу.

Код:

 Sub Example4 () Dim Last_Row As Long End Sub 

Крок 2. Тепер скористайтеся наступним кодом, щоб побачити останній не порожній рядок.

Код:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (Що: = "*", _ Після: = діапазон ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub 

Тут функція FIND шукає першу порожню клітинку. Зірочка (*) - це оператор, що допомагає дізнатися те саме.

Починаючи з комірки A1, система повертається до останньої комірки з аркуша і шукає в напрямку назад (xlPrevious). Він рухається справа наліво (xlByRows) і зациклюється на тому ж аркуші через всі рядки на схожих рядках, поки не знайде порожній рядок (див. .ROW в кінці коду).

Крок 3: Використовуйте MsgBox, щоб зберігати значення останнього не порожнього рядка і бачити його як спливаюче вікно.

Код:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (Що: = "*", _ Після: = діапазон ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Row MsgBox Last_Row End Sub 

Крок 4: Запустіть код і побачте результат як спливаюче вікно, що містить останній не порожній номер рядка.

Вихід:

Що потрібно пам’ятати

  • Кінець (Example1) може бути використаний для пошуку першої порожньої комірки / рядка або останньої порожньої комірки / рядка в заданому стовпчику за допомогою коду VBA.
  • Кінець працює в одній колонці більшу частину часу. Якщо у вас є дані в діапазонах, важко буде визначити, який стовпець слід використовувати, щоб дізнатись останній не порожній рядок.
  • Find (Example3) працює на весь діапазон з точки початку і виявляє останню не порожню комірку / рядок у заданому стовпчику за допомогою коду VBA. Він також може бути використаний для пошуку останнього не порожнього стовпця.

Рекомендовані статті

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

  1. Як використовувати стовпчик VBA Insert?
  2. Як вибрати рядки та стовпці Excel?
  3. Огляд клітин VBA діапазону
  4. Як додати клітини в Excel?