Поиск последней строки с данными в диапазоне с помощью макросов Excel VBA (7 методов)

  • Поделись Этим
Hugh West

При работе с Microsoft Excel поиск последних строк или столбцов является распространенной задачей. Мы используем клавиатуру для поиска последних использованных строк или столбцов. Но вы можете оказаться в ситуации, когда вам нужно найти последнюю использованную строку из сложного набора данных. В этом руководстве вы научитесь находить последнюю строку с данными в диапазоне с помощью VBA в Excel на практических примерах и соответствующих иллюстрациях.

Скачать Практическое пособие

Скачайте эту рабочую тетрадь для практических занятий.

Найти последнюю использованную строку в диапазоне.xlsm

7 методов поиска последней строки с данными в диапазоне с помощью макросов Excel VBA

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

📕 Читать далее : Найти последнюю ячейку со значением в строке в Excel (6 методов)

Для демонстрации этого руководства мы будем использовать этот набор данных:

Здесь у нас есть набор данных, состоящий из информации о некоторых игроках. Мы будем использовать его, чтобы обучить вас всем методам.

Открыть редактор VBA

Прежде чем мы начнем, напомним вам, как открыть редактор VBA в Excel.

Сначала нажмите Alt+F11 на клавиатуре. Затем выберите Вставка> Модуль. После этого откроется редактор VBA в Excel.

1. Использование свойства Range.End для поиска последней строки с данными в диапазоне с помощью VBA

Этот метод позволяет найти конец диапазона. В основном, это диапазон последних использованных ячеек. Мы можем использовать этот метод для поиска последней строки с данными в заданном диапазоне. Использование VBA даст вам желаемые результаты.

📌 Шаги

Сначала откройте VBA Редактор.

Затем введите следующий код:

 Sub range_end_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = Range("B4").End(xlDown).Row MsgBox "Последняя использованная строка: " & LastRow End Sub 

Теперь сохраните файл. Затем нажмите Alt+F8 чтобы открыть диалоговое окно Макрос. Выберите метод окончания диапазона

После этого нажмите кнопку Выполнить.

Как видите, мы успешно нашли последнюю строку с данными в диапазоне с помощью VBA в Excel.

2. Свойство Range.Find языка VBA в Excel

Сейчас в VBA мы используем метод Range.Find для поиска определенного значения из набора данных. Но этот метод может пригодиться для поиска последней строки с данными в диапазоне. Он работает как диалоговое окно Find & Replace в Excel. Метод Range.Find имеет много аргументов. Но мы не будем использовать их все.

Прежде чем мы воспользуемся методом Range.Find, давайте дадим вам небольшую информацию:

Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious)

Что := "*" - Звездочка - это символ подстановки, который обнаруживает любой текст или число в ячейке. Это в основном то же самое, что и поиск непустой ячейки.

SearchOrder:=xlByRows - Это означает, что необходимо перебрать все строки, прежде чем переходить к следующей. Поиск ведется слева направо или справа налево в зависимости от аргумента SearchDirection. Дополнительным параметром здесь является xlByColumns, который используется при поиске последнего столбца.

Направление поиска:=xlПредыдущий - Это определяет направление поиска. xlPrevious означает, что поиск будет вестись справа налево или снизу вверх. Другой альтернативой является xlNext, который смещается в противоположном направлении.

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub range_find_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row MsgBox "Последняя использованная строка: " & LastRow End Sub 

Теперь сохраните файл. Затем нажмите Alt+F8, чтобы открыть диалоговое окно Макрос. Выберите range_find_method.

После этого нажмите на Запускайте .

В итоге он найдет последнюю строку с данными в нашем рабочем листе Excel.

3. Использование функции SpecialCells для поиска последней строки с помощью VBA

Этот метод работает следующим образом Ctrl+End Когда вы нажимаете Ctrl+End на клавиатуре, то всегда переходите к последней строке, где бы вы ни находились. Но если вы хотите найти последнюю использованную строку с данными с помощью кодов VBA в Excel, то этот код вам просто необходим.

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub specialcells_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Cells.SpecialCells(xlCellTypeLastCell).Row MsgBox "Последняя использованная строка: " & LastRow End Sub 

Теперь сохраните файл. Затем нажмите Alt+F8, чтобы открыть диалоговое окно Макрос. Выберите метод специальных клеток .

После этого нажмите на Запускайте .

Как видите, мы успешно нашли последнюю строку с данными с помощью VBA в Excel.

4. Использование функции UsedRange для поиска последней строки с данными в диапазоне

UsedRange в VBA - это свойство рабочего листа, которое возвращает объект диапазона, представляющий используемый диапазон (все используемые или загруженные ячейки Excel на рабочем листе) на конкретном рабочем листе. Это свойство означает область, покрытую или заданную левыми верхними используемыми ячейками и последними правыми используемыми ячейками на рабочем листе.

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub usedRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row MsgBox "Последняя использованная строка: " & LastRow End Sub 

Теперь сохраните файл. Затем нажмите Alt+F8, чтобы открыть диалоговое окно Макрос. Выберите usedRange_method.

После этого нажмите на Запускайте .

Наконец, вы успешно увидите последнюю использованную строку на рабочем листе в Excel.

5. использование диапазона таблиц с помощью VBA в Excel

Если в вашем рабочем листе есть таблица, вы можете найти последнюю строку с данными с помощью этого метода.

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub TableRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.ListObjects("Table1").Range.Rows.Count + 3 MsgBox "Последняя использованная строка: " & LastRow End Sub 

Примечание : Здесь мы добавляем 3 к последней строке, так как наш набор данных начался после строки 3.

Теперь сохраните файл. Затем нажмите Alt+F8, чтобы открыть диалоговое окно Макрос. Выберите TableRange_method.

После этого нажмите на Запускайте .

Как видите, мы успешно использовали метод диапазона таблицы в кодах VBA для поиска последней строки с данными в Excel.

6. Использование именованного диапазона для поиска последней строки с данными в диапазоне

Этот метод не часто используется в Excel, но мы считаем, что вам стоит его изучить, чтобы пополнить свои знания.

Если в вашем наборе данных есть именованный диапазон, вы можете использовать этот код. Посмотрите на следующий снимок экрана. В нем есть именованный диапазон.

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub nameRange_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("Named_Range").Rows.Count + 1 MsgBox "последняя использованная строка: " & LastRow End Sub 

Примечание : Мы добавляем 1 к LastRow, потому что наш диапазон начался после строки 1.

Теперь сохраните файл. Затем нажмите Alt+F8 чтобы открыть диалоговое окно Макрос. Выберите nameRange_method.

После этого нажмите кнопку Выполнить.

Как видите, нам удалось найти последнюю строку с данными с помощью VBA.

7. Функция CurrentRegion в VBA в Excel

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

📌 Шаги

Сначала откройте редактор VBA.

Затем введите следующий код:

 Sub CurrentRegion_method() Dim sht As Worksheet Dim LastRow As Long Set sht = ActiveSheet LastRow = sht.Range("B4").CurrentRegion.Rows.Count + 3 'добавьте числа по вашему выбору' MsgBox "Последняя использованная строка: " & LastRow End Sub 

Примечание Диапазон должен быть первой ячейкой вашего набора данных. Добавьте номер строки в соответствии с вашим выбором. Здесь мы добавили 3, потому что наш набор данных начался после строки 3.

Теперь сохраните файл. Затем нажмите Alt+F8, чтобы открыть диалоговое окно Макрос. Выберите Метод текущего региона

После этого нажмите кнопку Выполнить.

Как видите, мы успешно нашли последнюю строку с данными с помощью кода VBA.

💬 О чем нужно помнить

Range.End работает только с одной строкой или столбцом. Если ваш набор данных содержит много пустых ячеек, будет трудно найти последнюю строку с данными.

Иногда, чтобы код работал гладко, необходимо добавить некоторые значения в методы. Мы добавили номера строк, чтобы найти последнюю ячейку. Таким образом, вам нужно вспомнить, с чего начинался ваш набор данных.

Заключение

В заключение, я надеюсь, что это руководство предоставило вам часть полезных знаний по поиску последней строки с данными в диапазоне с помощью VBA в Excel. Мы рекомендуем вам изучить и применить все эти инструкции к вашему набору данных. Скачайте рабочую тетрадь и попробуйте сами. Кроме того, не стесняйтесь оставлять отзывы в разделе комментариев. Ваши ценные отзывы поддерживают нашу мотивацию создавать подобные руководства.

Не забудьте заглянуть на наш сайт Exceldemy.com для решения различных проблем и задач, связанных с Excel.

Продолжайте изучать новые методы и расти!

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.