Как найти последнюю заполненную ячейку в excel vba
Перейти к содержимому

Как найти последнюю заполненную ячейку в excel vba

  • автор:

Определение последней ячейки в excel VBA

введите сюда описание изображения

Добрый день, есть вот такая табличка Мне нужно находить последнюю заполненную строчку столбца «А», а потом записать в столбцы «a,b,c,d..» следующей строки информацию. Этот код записывает в последнюю заполненную строку «А»

 Dim ra As Range Set ra = Range("A" & Rows.Count).End(xlUp).Offset(1) ra = TextBox6.Value 

Но если использовать этот метод, то столбец «B» запишет в строку 2, а столбец «А » в строку 5. А нужно, чтобы оба были записаны в 5ую строчку

Отслеживать

34.1k 25 25 золотых знаков 130 130 серебряных знаков 225 225 бронзовых знаков

Определение последней ячейки в диапазоне

Author24 — интернет-сервис помощи студентам

Всем привет!
Подскажите как определить номер последней ячейке по первому столбцу в диапазоне «A1:A100».
Спасибо!

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Номер строки последней заполненной ячейки в заданном диапазоне
Всем доброго времени суток. Помогите наладить код по определению номера строки последней.

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

Определение последней ячейки в excel VBA
Добрый день, есть вот такая табличка Мне нужно находить последнюю заполненную строчку столбца.

Определение последней закрашенной ячейки в строке
Доброго дня, люди добрые. Подскажите как найти последнюю закрашенную ячейку в строке?

Часто онлайн
864 / 579 / 263
Регистрация: 09.01.2017
Сообщений: 1,952
Baykal555,

lc = Cells(Rows.Count, 1).End(xlUp).Row

Регистрация: 08.09.2017
Сообщений: 391

КостяФедореев, дело в том, что ячейка А101 может быть заполнена, при этом не должна учитываться. Учитываться должно заполнение ячеек именно с 1 по 100 строку

Заблокирован

lc = Cells(101, 1).End(xlUp).Row

Часто онлайн
864 / 579 / 263
Регистрация: 09.01.2017
Сообщений: 1,952
Baykal555, можно функцией, если таких диапазонов много

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Public Sub test() ' Как использовать функцию Set testRange = Range("A1:A100") lr = LastRowInRange_xlUp(testRange) MsgBox LastRowInRange_xlUp(testRange) End Sub Function LastRowInRange_xlUp(ByVal rng As Range) As Long Dim lastRowCurrent As Long Dim lastRowBest As Long Dim i As Long For i = rng.Column To rng.Column + rng.Columns.Count - 1 If rng.Rows.Count < Rows.Count Then lastRowCurrent = Cells(rng.Row + rng.Rows.Count, i).End(xlUp).Row Else lastRowCurrent = Cells(rng.Rows.Count, i).End(xlUp).Row End If If lastRowCurrent > lastRowBest Then lastRowBest = lastRowCurrent End If Next i If lastRowBest < rng.Row Then LastRowInRange_xlUp = rng.Row Else LastRowInRange_xlUp = lastRowBest End If End Function

Добавлено через 11 минут
Baykal555, а это через массив, так быстрей работает

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Public Sub test() ' Как использовать функцию Set testRange = Range("A1:A100") lr = LastRowInRange_Array(testRange) MsgBox LastRowInRange_Array(testRange) End Sub Function LastRowInRange_Array(ByVal rng As Range) As Long Dim rngValues As Variant rngValues = rng.Value2 Dim lastRow As Long Dim i As Long Dim j As Long For i = LBound(rngValues, 2) To UBound(rngValues, 2) 'Столбцы For j = UBound(rngValues, 1) To LBound(rngValues, 1) Step -1 'Строки If Len(Trim(rngValues(j, i))) > 0 Then If j > lastRow Then lastRow = j Exit For End If Next j Next i If lastRow = 0 Then LastRowInRange_Array = rng.Row Else LastRowInRange_Array = lastRow + rng.Row - 1 End If End Function

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

Номер последней заполненной строки в таблице Excel обычно используется в коде VBA для определения следующей за ней первой пустой строки для добавления новой записи. А также для задания интервала для поиска и обработки информации с помощью цикла For… Next (указание границ обрабатываемого диапазона).

Переменную, которой присваивается номер последней строки, следует объявлять как Long или Variant, например: Dim PosStr As Long . В современных версиях Excel количество строк на рабочем листе превышает максимальное значение типа данных Integer.

Таблица в верхнем левом углу

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

Пример таблицы с набором данных в Excel

Вариант 1
Основная формула для поиска последней строки в такой таблице, не требующая соблюдения каких-либо условий:
PosStr = Cells(1, 1).CurrentRegion.Rows.Count

Вариант 2
Ниже таблицы не должно быть никаких записей, в том числе ранее удаленных:
PosStr = ActiveSheet.UsedRange.Rows.Count

Вариант 3
В первом столбце таблицы не должно быть пропусков, а также в таблице должно быть не менее двух заполненных строк, включая строку заголовков:
PosStr = Cells(1, 1).End(xlDown).Row

Вариант 4
В первой колонке рабочего листа внутри таблицы не должно быть пропусков, а ниже таблицы в первой колонке не должно быть других заполненных ячеек:
PosStr = WorksheetFunction.CountA(Range(«A:A»))

Вариант 5
Ниже таблицы не должно быть никаких записей:
PosStr = Cells.SpecialCells(xlLastCell).Row

Последняя строка любой таблицы

Последнюю заполненную строку для любой таблицы будем искать, отталкиваясь от ее верхней левой ячейки: Cells(a, b) .

Вариант 1
Основная формула для поиска последней строки в любой таблице, не требующая соблюдения каких-либо условий:
PosStr = Cells(a, b).CurrentRegion.Cells(Cells(a, b).CurrentRegion.Cells.Count).Row

Вариант 2
Дополнительная формула с условием, что в первом столбце таблицы нет пустых ячеек:
PosStr = Cells(a, b).End(xlDown).Row

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

Эксель: как найти последнюю заполненную ячейку

uchet-jkh.ru

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

Первый способ найти последнюю заполненную ячейку в Excel — использовать функцию «Поиск». Вам необходимо выбрать столбец, в котором вы ищете последнюю заполненную ячейку, затем открыть вкладку «Поиск» и выбрать функцию «Найти». В появившемся окне вам нужно ввести знак доллара ($), указать столбец, в котором вы ищете, и выбрать параметр «Значение не равно». После нажатия кнопки «Найти все» Excel найдет все заполненные ячейки и покажет их в результате поиска. Последняя найденная ячейка будет последней заполненной в столбце.

Второй способ найти последнюю заполненную ячейку в Excel — использовать функцию «Подсчет». Вам нужно ввести следующую формулу в ячейку, в которой вы хотите получить результат:

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

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

Советы по поиску последней заполненной ячейки в Excel

1. Использование функции MAX

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

2. Использование функции OFFSET

Функция OFFSET позволяет вам смещать указатель на определенное количество строк или столбцов относительно определенной ячейки. Вы можете использовать эту функцию, чтобы найти последнюю заполненную ячейку, двигаясь относительно известной ячейки до тех пор, пока не встретите пустую ячейку.

3. Использование VBA-макросов

Если вы знакомы с VBA (Visual Basic for Applications), вы можете написать макрос, который автоматически найдет последнюю заполненную ячейку в таблице. Ваш макрос может использовать циклы и условные операторы для проверки каждой ячейки в столбце или строке и определения адреса последней заполненной ячейки.

4. Использование комбинации функций INDEX и COUNTA

Функция INDEX возвращает значение ячейки по указанным координатам, а функция COUNTA подсчитывает количество незаполненных ячеек в заданном диапазоне. Вы можете комбинировать эти функции, чтобы найти последнюю заполненную ячейку. Например, вы можете использовать функцию INDEX со значением, равным количеству заполненных ячеек в столбце, чтобы получить значение последней заполненной ячейки.

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

Использование формулы MAX

Следующий пример демонстрирует, как использовать формулу MAX для нахождения последней заполненной ячейки в столбце A:

A B C
10
15
20
25

Для нахождения последней заполненной ячейки в столбце A, введите следующую формулу в любую пустую ячейку (например, ячейку B1):

Формула MAX(A:A) означает, что мы хотим найти максимальное значение во всем столбце A. После ввода этой формулы, Excel автоматически найдет последнюю заполненную ячейку в столбце A и отобразит ее значение. В данном примере, формула вернет значение 25, так как это максимальное значение в столбце A.

Теперь вы знаете, как использовать формулу MAX для нахождения последней заполненной ячейки в Excel. Этот метод особенно полезен, если вы работаете с большими таблицами, где может быть трудно визуально определить, где находится последняя заполненная ячейка.

Использование VBA-скрипта

Если вы хотите найти последнюю заполненную ячейку в Excel с помощью VBA-скрипта, следуйте инструкциям ниже:

  1. Откройте Visual Basic для приложений (VBA), нажав ALT + F11.
  2. В меню выберите «Вставка» и выберите «Модуль».
  3. Вставьте следующий код в новый модуль:
Function LastCellInColumn(ByVal rng As Range) As Range Dim lastCell As Range Set lastCell = rng.Cells(rng.Cells.Count) Set LastCellInColumn = lastCell.End(xlUp) End Function Sub FindLastCell() Dim lastCell As Range Set lastCell = LastCellInColumn(ThisWorkbook.Sheets("Sheet1").Range("A:A")) MsgBox "Последняя заполненная ячейка в столбце A: " & lastCell.Address End Sub 
  1. Нажмите F5, чтобы выполнить скрипт.
  2. Появится сообщение с адресом последней заполненной ячейки в столбце A.

Вы также можете изменить скрипт, чтобы найти последнюю заполненную ячейку в других столбцах, заменив «A:A» на нужную вам область.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *