Поиск последней заполненной строки в excel vba

Обновлено: 05.07.2024

В VBA, когда нам нужно найти последнюю строку, существует множество различных методов, наиболее часто используемым методом является метод End(XLDown), а также другие методы, такие как поиск последнего значения с помощью функции поиска. в VBA End(XLDown). Строка — это самый простой способ добраться до последней строки.

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

Если написание кода — это первый прогресс, которого вы достигли в VBA, то создание динамического кода — это следующий шаг для вас. Excel полон ссылок на ячейки Excel полон ссылок на ячейки Ссылка на ячейку в Excel ссылается на другие ячейки в ячейку, чтобы использовать ее значения или свойства. Например, если у нас есть данные в ячейке A2 и мы хотим использовать их в ячейке A1, используйте =A2 в ячейке A1, и это скопирует значение A2 в A1. Подробнее . В тот момент, когда мы обращаемся к ячейке, она фиксируется. Если наши данные увеличиваются, нам нужно вернуться к ссылке на ячейку и изменить ссылки, чтобы сделать результат актуальным.

Для примера посмотрите на приведенный ниже код.

Код:

 Сумма последней строки VBA 1

Приведенный выше код говорит, что в D2 значение ячейки должно быть суммой диапазона ("B2:B7").

Сумма последней строки VBA 1-1

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

Сумма последней строки VBA 1-2

Теперь, если я запущу код, он не даст мне результатов обновлений, а по-прежнему будет придерживаться старого диапазона, то есть диапазона ("B2: B7").

Именно здесь очень важен динамический код.

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

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

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

Прежде чем я объясню вам код, я хочу, чтобы вы вспомнили, как вы переходите к последней строке в обычном рабочем листе.

Мы будем использовать сочетание клавиш Ctrl + стрелка вниз.

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

Шаг 1. Определите переменную как LONG.

Код:

Метод последней строки VBA 1

Шаг 2. Для этой переменной мы назначим номер последней использованной строки.

Код:

< бр />

Шаг 3. Напишите код в виде CELLS (Rows.Count,

Код:

Метод последней строки VBA 1-2

Шаг 4. Теперь укажите номер столбца как 1.

Код:

Метод последней строки VBA 1–3

CELLS(Rows.Count, 1) означает подсчет количества строк в первом столбце.

Таким образом, приведенный выше код VBA приведет нас к последней строке листа Excel.

Шаг 5: Если мы находимся в последней ячейке листа, чтобы перейти к последней использованной строке, мы нажмем сочетание клавиш Ctrl + стрелка вверх.

Код:

Метод последней строки VBA 1–4

Шаг 6. Теперь мы перейдем к последней использованной строке снизу. Теперь нам нужен номер строки этого. Поэтому используйте свойство ROW, чтобы получить номер строки.

Код:

Метод последней строки VBA 1–5

Код:

Метод последней строки VBA 1-6

Запустите этот код с помощью клавиши F5 или вручную. Отобразится последняя использованная строка.

Вывод:

Метод последней строки VBA 1–8

Последняя использованная строка на этом листе — 13.

Теперь я удалю еще одну строку, запущу код и увижу динамизм кода.

Метод последней строки VBA 1–9

Хорошо, теперь результат автоматически занимает последнюю строку.

Это динамический код последней строки VBA.

Как показано в предыдущем примере, измените номер строки с числового значения на LR.

Код:

Метод последней строки VBA 1–10

Я удалил B13 и добавил имя переменной LR.

Теперь не имеет значения, сколько строк вы добавляете. Он автоматически примет обновленную ссылку.

Код:

Метод 2

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

Метод 2-1

Если я запущу код вручную или с помощью клавиши F5, результатом будет 12, потому что 12 — это последняя использованная строка.

Вывод:

Метод 2-2

Сейчас я удалю 12-ю строку и посмотрю результат.

Метод 2-4

Несмотря на то, что я удалил одну строку, результат все равно отображается как 12.

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

Я сохранил книгу и теперь вижу результат.

Метод 2-5

Мы можем найти последнюю строку VBA в используемом диапазоне. Приведенный ниже код также возвращает последнюю использованную строку.

Код:

 Метод 3

Также будет возвращена последняя использованная строка.

Вывод:

Метод 3-2

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

Это руководство по VBA Last Row. Здесь мы изучаем 3 лучших метода поиска последней использованной строки в данном столбце вместе с примерами и загружаемыми шаблонами. Ниже приведены некоторые полезные статьи, связанные с VBA –

Блог, ориентированный в основном на Microsoft Excel, PowerPoint и Word, со статьями, призванными вывести ваши навыки анализа данных и работы с электронными таблицами на новый уровень. Научитесь всему: от создания информационных панелей до автоматизации задач с помощью кода VBA!

 TheSpreadsheetGuru

Создание динамического кода VBA


< /p>

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

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

Осторожно!

Имейте в виду, что некоторые из этих методов могут не дать вам желаемого номера строки или столбца, если вы не настроите их должным образом или не используете правильно отформатированную таблицу данных.Под «хорошо отформатированной таблицей данных» я подразумеваю рабочую таблицу с данными, которая начинается с ячейки A1 и не содержит пустых строк или столбцов в середине данных. На рисунке ниже показана разница.

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

Последняя использованная ячейка на листе

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

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

Последний столбец:

Используйте функцию «Последняя», чтобы найти последнюю строку, столбец или ячейку в диапазоне или на листе

В примере макроса мы вызываем функцию Last, эта функция имеет два аргумента

Аргумент 1 может быть 1, 2 или 3
1 = последняя строка
2 = последний столбец
3 = последняя ячейка

Аргумент 2 — это диапазон, в котором вы хотите выполнить поиск

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

Это "последняя" функция, которую мы используем в макросе выше:

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

Lr = LastRow(ActiveSheet)
Lc = LastCol(ActiveSheet)

Предупреждения:

1 : Том Огилви разместил это в группе новостей. Поиск не находит ячейку, содержащую нулевую строку "", введенную при выполнении Правка=>Копировать, а затем Правка=>Специальная вставка, значения для ячейки, содержащей формулу вида =ЕСЛИ(A1="","",A1*1.21 ), что может быть или не быть желательным (end(xlup) делает).

2 : Найти не форматирование ячейки, а только данные. Если это важно для вас, просмотрите разделы xlCellTypeLastCell и UsedRange на этой странице, чтобы найти последнюю строку или столбец.

3: Если вы используете объединенные ячейки (пожалуйста, не используйте объединенные ячейки), возможно, вы получите неожиданные результаты.
Это даст вам номер столбца первой ячейки, а не последней ячейки в объединенных ячейках.< /p>

Чтобы найти последнюю строку, столбец или ячейку, вы можете использовать свойство диапазона "Конец". Свойство end позволяет перейти к концу диапазона данных (к последней непустой ячейке). При этом есть константы, которые вы можете использовать, чтобы решить, в каком направлении вы хотите перемещаться (сверху, снизу, влево или вправо).

Используйте VBA для поиска последней строки в Excel

  1. Определите ячейку или диапазон, из которого вы хотите перейти к последней строке.
  2. После этого введите точку, чтобы получить список свойств и методов.
  3. Выберите или введите «Конец» и введите начальную скобку.
  4. Используйте нужный аргумент.
  5. Далее используйте свойство адреса, чтобы получить адрес ячейки.

При запуске приведенного выше кода отображается окно сообщения с номером строки последней непустой ячейки.


Найти последний столбец с помощью VBA

Теперь предположим, что вы хотите найти последний столбец. В этом случае вместо использования константы «xlDown» вам нужно использовать «xlRight», и если вы хотите выбрать эту ячейку вместо адреса, вы можете использовать метод «выбрать». Рассмотрим следующий метод.


Найти последнюю ячейку

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


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


  1. В ПЕРВОЙ части вы объявили две переменные для хранения номера строки и столбца.
  2. В ВТОРОЙ части вы использовали «End» с «xlDown», а затем свойство Row, чтобы получить номер последней строки, и таким же образом вы использовали «End» с «xlToRight». ", а затем свойство "Столбец", чтобы получить номер последнего столбца.
  3. В ТРЕТЬЕЙ части, используя номер последнего столбца и номер последней строки, перейдите к последней ячейке и выберите ее.

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

Последняя строка, столбец и ячейка с использованием метода поиска

Вы также можете использовать метод find с объектом диапазона, чтобы получить последнюю строку, столбец и ячейку на листе. Чтобы узнать номер строки, вот код:

Читайте также: