VBA Last Row - Как найти последнюю использованную строку в Excel, используя код VBA?

Содержание:

Anonim

Excel VBA Последняя строка

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

Я просто укажу один пример, который повторяет важность динамического кода.

Предположим, у меня есть данные, приведенные ниже, с сотрудником и его зарплатой.

И посмотрите на код, приведенный ниже:

Код:

 Sub Example1 () Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B11")) End Sub 

Здесь этот код печатает сумму зарплат для всех сотрудников (ячейка B2: B11 ) в ячейке D2 . Смотрите изображение ниже:

Теперь, что, если я добавлю несколько ячеек в эти данные и снова выполню этот код?

Логически говоря, приведенный выше код не будет суммировать все 14 строк из столбца B. Причина того же - диапазон, который мы обновили в WorksheetFunction (то есть B2: B11). По этой причине динамический код, который может принимать во внимание последнюю заполненную строку, делает нас более важными.

В этой статье я расскажу о некоторых методах, которые могут быть полезны при поиске последней строки для заданного набора данных с использованием кода VBA.

Как найти последнюю использованную строку в столбце, используя VBA?

Ниже приведены различные примеры с различными методами для поиска последней использованной строки столбца в Excel с использованием кода VBA.

Вы можете скачать этот шаблон Excel последней строки VBA здесь - Шаблон Excel последней строки VBA

Пример # 1 - Использование метода Range.End ()

Что ж, этот метод такой же, как использование стрелки Ctrl + Down в 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) End 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: Запустите код, используя кнопку Run или нажав F5, и просмотрите результат.

Выход:

Шаг 9: Теперь давайте удалим одну строку и посмотрим, даст ли код точный результат или нет. Это поможет нам проверить динамичность нашего кода.

Пример № 2 - Использование Range и SpecialCells

Мы также можем использовать свойства Range и SepcialCells VBA, чтобы получить последнюю непустую строку таблицы Excel.

Выполните следующие шаги, чтобы получить последнюю непустую строку в Excel, используя код VBA:

Шаг 1: Определите переменную снова как Long.

Код:

 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 = Range ("A: A") End Sub 

Шаг 4: Используйте функцию SpecialCells, чтобы узнать последнюю непустую ячейку.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Эта функция SpecialCells выбирает последнюю ячейку в вашем Excel, так как в ней указаны круглые скобки ( xlCellTypeLastCell позволяет выбрать последнюю непустую ячейку на вашем листе Excel).

Шаг 5: Теперь используйте ROW, чтобы получить последний ряд из вашего листа Excel.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Это вернет вам последнюю непустую строку из вашего Excel.

Шаг 6: Теперь присвойте MsgBox это значение Last_Row, чтобы мы могли видеть последний непустой номер строки в окне сообщения.

Код:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Шаг 7: Запустите код, нажав F5 или кнопку Run, расположенную в верхней части левого угла.

Выход:

Вы можете видеть, что последний непустой номер ячейки выскакивает через MsgBox со ссылкой на столбец A. Поскольку мы упоминали столбец A в функции 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 (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Sub End End 

Здесь функция FIND ищет первую непустую ячейку. Звездочка (*) - это подстановочный оператор, который помогает выяснить то же самое.

Начиная с ячейки A1, система возвращается к последней ячейке листа и выполняет поиск в обратном направлении (xlPrevious). Он перемещается справа налево (xlByRows) и зацикливается на одном и том же листе по всем строкам на похожих строках, пока не найдет непустую строку (см. .ROW в конце кода).

Шаг 3: Используйте MsgBox, чтобы сохранить значение последней непустой строки и увидеть его как всплывающее окно.

Код:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub 

Шаг 4: Запустите код и просмотрите вывод в виде всплывающего окна, содержащего последний непустой номер строки.

Выход:

То, что нужно запомнить

  • End (Example1) может использоваться для определения первой пустой ячейки / строки или последней непустой ячейки / строки в данном столбце с использованием кода VBA.
  • Конец работает на одном столбце большую часть времени. Если у вас есть данные в диапазонах, было бы трудно решить, какой столбец следует использовать для поиска последней непустой строки.
  • Find (Example3) работает во всем диапазоне от начальной точки и находит последнюю непустую ячейку / строку в данном столбце, используя код VBA. Это также может быть использовано для определения последнего непустого столбца.

Рекомендуемые статьи

Это руководство к VBA Last Row. Здесь мы обсудим, как найти последнюю использованную строку в данном столбце вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Как использовать VBA Вставить столбец?
  2. Как выбрать строки и столбцы Excel?
  3. Обзор ячеек диапазона VBA
  4. Как добавить ячейки в Excel?