image

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

В этой статье будут объяснены все способы поиска последней строки и столбца в Excel самыми простыми способами.

1. Найдите последнюю непустую строку в столбце с помощью Range.End. Сначала рассмотрим код. Я объясню письмо.
Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

Вышеупомянутая подпрограмма находит последнюю строку в столбце 1.

image

Как это работает?

Это похоже на переход к последней строке на листе и нажатие сочетания клавиш CTRL + UP.

Ячейки (Rows.Count, 1): эта часть выбирает ячейку в столбце A. Rows.Count дает 1048576, что обычно является последней строкой в ​​листе Excel.

Cells (1048576, 1) .End (xlUp): End — это метод класса диапазона, который используется для навигации по листам до концов. xlUp — это переменная, указывающая направление. Вместе эта команда выбирает последнюю строку с данными.

Cells (Rows.Count, 1) .End (xlUp) .Row: .row возвращает номер строки выбранной ячейки. Следовательно, мы получаем номер строки последней ячейки с данными в столбце A. В нашем примере это 8.

Посмотрите, как легко найти последние строки с данными. Этот метод выберет последнюю строку в данных независимо от пустых ячеек перед ней. Вы можете видеть, что на изображении только ячейка A8 содержит данные. Все предыдущие ячейки пустые, кроме A4.

Выберите последнюю ячейку с данными в столбце. Если вы хотите выбрать последнюю ячейку в столбце A, просто удалите «.row» с конца и напишите .select.
Sub getLastUsedRow()

Cells(Rows.Count, 1).End(xlUp).Select ‘This line selects the last cell in a column

End Sub

Команда «.Select» выбирает активную ячейку.

Получить столбец адреса последней ячейки Если вы хотите получить адрес последней ячейки в столбце A, просто удалите «.row» с конца и напишите .address.
Sub getLastUsedRow()

add=Cells(Rows.Count, 1).End(xlUp).address ‘This line selects the last cell in a column

Debug.print add

End Sub

Функция Range.Address возвращает адрес активной ячейки.

Найти последний непустой столбец в строке Это почти то же самое, что найти последнюю непустую ячейку в столбце.

Здесь мы получаем номер столбца последней ячейки с данными в строке 4.

Sub getLastUsedCol()

Dim last_col As Integer

last_col = Cells(4,Columns.Count).End(xlToLeft).Column ‘This line gets the last column

Debug.Print last_col

End Sub

image

Вы можете видеть на изображении, что он возвращает номер столбца последней непустой ячейки в строке 4. То есть 4.

Как это работает?

Что ж, механизм такой же, как поиск последней ячейки с данными в столбце. Мы только что использовали ключевые слова, относящиеся к столбцам.

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

Используя это, мы можем легко выбрать таблицу или набор данных. После выбора набора данных или таблицы мы можем выполнить с ними несколько операций, таких как копирование и вставка, форматирование, удаление и т. Д.

Здесь у нас есть набор данных. Эти данные могут расширяться вниз. Фиксируется только начальная ячейка — B4. Последняя строка и столбец не фиксируются. Нам нужно динамически выделить всю таблицу с помощью vba.

image

Код VBA для выбора таблицы с пустыми ячейками

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

End Sub

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

image

Преимущества этого метода:

  1. Это просто. Мы буквально написали всего одну строку, чтобы получить последнюю строку с данными. Это облегчает задачу.

  2. Быстрый. Меньше строк кода, меньше времени.

  3. Легко понять.

  4. Отлично работает, если у вас неуклюжая таблица данных с фиксированными начальными точками.

Минусы метода Range.End:

  1. Начальная точка должна быть известна.

  2. Вы можете получить только последнюю непустую ячейку в известной строке или столбце.

Когда ваша отправная точка не зафиксирована, это будет бесполезно. Что вряд ли произойдет.

2. Найти последнюю строку с помощью функции Find (). Сначала рассмотрим код.
Sub last_row()

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



Debug.Print lastRow

End Sub

image

Как вы можете видеть на изображении, этот код точно возвращает последнюю строку.

Как это работает? Здесь мы используем функцию поиска, чтобы найти любую ячейку, которая содержит что-либо, используя оператор подстановки «*». Звездочка используется для поиска чего угодно, текста или числа.

Устанавливаем порядок поиска по строкам (searchorder: = xlByRows). Мы также указываем excel vba направление поиска как xlPrevious (searchdirection: = xlPrevious).

Это делает функцию поиска для поиска с конца листа по строкам.

Как только он находит ячейку, которая содержит что-либо, он останавливается. Мы используем метод Range.Row для извлечения последней строки из активной ячейки.

Преимущества функции Find для получения последней ячейки с данными:

  1. Вам не нужно знать отправную точку. Это просто доставит вам последний ряд.

  2. Он может быть универсальным и может использоваться для поиска последней ячейки с данными на любом листе без каких-либо изменений.

  3. Может использоваться для поиска любого последнего экземпляра определенного текста или числа на листе.

Минусы функции Find ():

  1. Это некрасиво. Слишком много доводов.

  2. Это медленно.

  3. Невозможно перейти к последнему непустому столбцу. Технически можно. Но это становится слишком медленно.

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

Sub spl_last_row_()

lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Debug.Print lastRow

End Sub

image

Если вы запустите приведенный выше код, вы получите номер строки последней использованной ячейки.

Как это работает?

Это vba-эквивалент сочетания клавиш CTRL + End в Excel. Он выбирает последнюю использованную ячейку. Если вы запишите макрос, нажав CTRL + End, вы получите этот код.

Sub Macro1()

'

' Macro1 Macro

'

'

ActiveCell.SpecialCells(xlLastCell).Select

End Sub

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

Примечание. Как я сказал выше, этот метод вернет последнюю использованную ячейку, а не последнюю ячейку с данными. Если вы удалите данные в последней ячейке, указанный выше код vba по-прежнему будет возвращать ту же ссылку на ячейку, поскольку это была «последняя использованная ячейка». Вам необходимо сначала сохранить документ, чтобы получить последнюю ячейку с данными с помощью этого метода.

Надеюсь, эта статья о том, как найти следующую строку в Microsoft Excel 2010 на VBA, носит пояснительный характер. Дополнительные статьи о формулах условия ЕСЛИ можно найти здесь.

Если вам понравились наши блоги, поделитесь ими со своими друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook. Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected].

Статьи по теме:

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Начало работы с пользовательскими формами Excel VBA]: я объясню, как создать форму в Excel, как использовать VBA набор инструментов, как обрабатывать вводимые пользователем данные и, наконец, как хранить вводимые пользователем данные. Мы рассмотрим эти темы на одном примере и пошаговом руководстве.

link: / general-themes-in-vba-vba-variables-in-excel [переменные VBA в Excel]: VBA означает Visual Basic для приложений.

Это язык программирования от Microsoft. Он используется с приложениями Microsoft Office, такими как MSExcel, MS-Word и MS-Access, тогда как переменные VBA являются конкретными ключевыми словами.

link: / general-themes-in-vba-excel-vba-variable-scope [Область переменных Excel VBA]: Во всех языках программирования у нас есть спецификаторы доступа к переменным, которые определяют, откуда можно получить доступ к определенной переменной. Excel VBA — не исключение. VBA тоже имеет спецификаторы области видимости.

link: / cells-range-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-interval-question [ByRef and ByVal Arguments]: Когда аргумент передается как аргумент ByRef другой подгруппе или функции, отправляется ссылка на фактическую переменную. Любые изменения, внесенные в копию переменной, будут отражены в исходном аргументе.

Популярные статьи:

link: / tips-if-condition-in-excel [Как использовать функцию IF в Excel]: оператор IF в Excel проверяет условие и возвращает конкретное значение, если условие истинно, или другое конкретное значение, если оно ложно .

link: / formulas-and-functions-Introduction-of-vlookup-function [Как использовать функцию ВПР в Excel]: Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листы.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]: Это еще одна важная функция информационной панели. Это поможет вам суммировать значения для конкретных условий.

link: / tips-countif-in-microsoft-excel [Как использовать функцию СЧЁТЕСЛИ в Excel]: Подсчет значений с условиями с помощью этой удивительной функции. Вам не нужно фильтровать данные для подсчета определенных значений. Функция Countif важна для подготовки вашей приборной панели.