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. Вы также можете посмотреть следующие статьи, чтобы узнать больше -
- Как использовать VBA Вставить столбец?
- Как выбрать строки и столбцы Excel?
- Обзор ячеек диапазона VBA
- Как добавить ячейки в Excel?