How to find the last column in a row that has data. This includes selecting that column or a cell in it, returning the column number, and getting data from that column.
Sections:
Find the Last Column with Data
Select the Last Cell
Select the Entire Column
Get the Number of the Last Column
Get the Data from the Last Column
Notes
Find the Last Column with Data
Cells(1, Columns.Count).End(xlToLeft)
All you have to change to make this work for you is the 1.
This is the basic method that you use to return the last cell in a row that has data. That means that the cell will be in the last column that has data.
The 1 in the above code is the number of the row that you want to use when searching for the last column that has data. Currently, this code looks in row 1 and finds the last column in row 1 that has data. Change this to any number you want.
This doesn’t seem very useful right now, but, in practice, it is often used within a loop that goes through a list of rows and you can then set this code to find the last column of data for each row without having to manually change this number.
Columns.Count puts the total number of columns in for that argument of the Cells() function. This tells Excel to go to the very last cell in the row, all the way to the right.
Then, End(xlToLeft) tells Excel to go to the left from that last cell until it hits a cell with data in it.
This basic format is also used to find the last row in a column.
Now, let’s look at how to get useful information from this code.
Select the Last Cell
The first thing that you might want to do is to select the cell that has data in the last column of a row.
Cells(1, Columns.Count).End(xlToLeft).Select
Select is what selects that last cell in the row that has data.
This is exactly the same as the first piece of code except we added Select to the end of it.
1 is the row that is being checked.
Select the Entire Column
This selects the entire column where the last cell with data is found within a particular row.
Cells(1, Columns.Count).End(xlToLeft).EntireColumn.Select
EntireColumn is added to the base code and that is what references, well, the entire column.
Select is added to the end of EntireColumn and that is what does the actual «selecting» of the column.
1 is the row that is being checked.
Get the Number of the Last Column
Let’s get the number of the last column with data. This makes it easier to do things with that column, such as move one to the right of it to find the next empty cell in a row.
Cells(1, Columns.Count).End(xlToLeft).Column
Column is appended to the original code in order to give us the number of the column that contains the last piece of data in a row.
This is rather useless on its own though, so let’s put it into a variable so it can be used throughout the macro.
last_col = Cells(1, Columns.Count).End(xlToLeft).Column
The number of the last column is now stored in the variable last_col and you can now use that variable to reference this number.
1 is the row that is being checked.
Get the Data from the Last Column
Return any data contained in the cell in the last column.
Cells(1, Columns.Count).End(xlToLeft).Value
Value is added to the end of the base code in order to get the contents of the cell.
This is rather useless in its current form so let’s put it into a variable.
cell_value = Cells(1, Columns.Count).End(xlToLeft).Value
Now, the variable cell_value will contain anything that is in the last cell in the row.
1 is the row that is being checked.
Notes
The basic format for finding the last cell that has data in a row is the same and is the most important part to remember. Each piece of information that we want to get from that last cell simply requires one or two things to be added to the end of that base code.
Download the attached file to work with these examples in Excel.
Similar Content on TeachExcel
Get the Last Row using VBA in Excel
Tutorial:
(file used in the video above)
How to find the last row of data using a Macro/VBA in Exce…
Next Empty Row Trick in Excel VBA & Macros
Tutorial:
A simple way to find the next completely empty row in Excel using VBA/Macros, even if som…
How to Add a New Line to a Message Box (MsgBox) in Excel VBA Macros
Tutorial: I’ll show you how to create a message box popup window in Excel that contains text on mult…
Loop Through an Array in Excel VBA Macros
Tutorial:
I’ll show you how to loop through an array in VBA and macros in Excel. This is a fairly…
Filter Data in Excel to Show Only the Top X Percent of that Data Set — AutoFilter
Macro: This Excel macro filters a set of data in Excel and displays only the top X percent of tha…
Sort Data Left to Right in Excel
Tutorial: How to sort columns of data in Excel. This is the same as sorting left to right.
This wi…
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
Узнать последнюю строку можно следующими примерами:
1.
Код 1C v 8.х
Сообщить(appExcel.WorkSheets(1).UsedRange.Row);
2. метод определяет, когда закончились данные на листе:
SpecialCells(11) — «последняя» ячейка
Например, если нужен номер строки последней ячейки,
Код 1C v 8.х
LastRow=ExcelApp.Cells(1,1).SpecialCells(11).Row;
Для проверки нажмите в проверяемом файле ctrl+end. Посмотрите на какой строке остановится курсор.
Узнать последнюю колонку можно следующими примерами:
1.
Код 1C v 8.х
Сообщить(appExcel.WorkSheets(1).UsedRange.Columns);
2.
Код 1C v 8.х
LastCol=ExcelApp.Cells(1,1).SpecialCells(11).Columns;
Информация взята с сайта http://helpf.pro
Хотите узнать больше по этому вопросу?
Подпишитесь на нашу рассылку новостей
Подписаться
Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:
Предложить статью
На чтение 3 мин. Просмотров 13 Опубликовано 20.05.2021
На большом листе, если вы хотите быстро и легко определить последнюю строку или столбец, содержащие значения, вы можете просто перетащить полосу прокрутки, чтобы найти ее. Но будет больно, если на вашем листе будут тысячи строк данных. В этой статье я расскажу о некотором полезном коде VBA для решения этой задачи.
Найдите последнюю строку или столбец с данными с помощью кода VBA
Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Содержание
- Найти последнюю строку или столбец с данными с помощью кода VBA
- Найти и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
- Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Найти последнюю строку или столбец с данными с помощью кода VBA
Большинство из нас может подумать о том, чтобы найти последнюю ячейку, нажав Ctrl + End клавиши, чтобы найти последнюю строку и столбец, но сочетание клавиш не найдет ячейку с точным значением, если некоторые ячейки имеют форматирование ниже диапазона данных. Итак, используйте следующий код VBA:
1 . Активируйте свой рабочий лист, на котором вы хотите определить последнюю строку или столбец с данными.
2 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .
3 . Затем нажмите Insert > Module и вставьте следующий код в окно модуля .
Код VBA: найти последнюю строку с данными
4 . Затем нажмите клавишу F5 , чтобы запустить этот код, и появится окно подсказки, в котором будет указан номер строки используемого диапазона. См. Снимок экрана:
5 . Продолжайте нажимать кнопку OK , на этот раз номер последней строки со значениями был показан, как показано на следующем снимке экрана:
Примечание. Чтобы найти последний столбец с данными, примените этот код:
Код VBA: найти последний столбец с данными
Найти и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Если вы хотите напрямую найти и выбрать последнюю строку или столбец с данными в Excel, Выбрать последний Строка и утилиты Выбрать последний столбец из Kutools of Excel могут вам помочь. Пожалуйста, сделайте следующее.
Перед применением Kutools for Excel , пожалуйста, сначала загрузите и установите его .
1. Если вы хотите найти и выбрать последнюю строку с данными, нажмите Kutools > Выбрать > Выбрать последнюю ячейку > Последняя строка . См. Снимок экрана:
Примечание : для поиска и выбора последнего столбца с данными нажмите Kutools > Выберите > Выбрать последнюю ячейку > Последний столбец .
Затем последняя строка или столбец с данными на текущем листе найдена и немедленно выбрана.
Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста щелкните, чтобы загрузить его , а затем перейдите к применению операции в соответствии с указанными выше шагами.
Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Номер последнего столбца в Экселе |
Я |
05.07.18 — 18:10
77, читаем эксель
определяем границы читаемых данных
Строк = Excel.Cells.SpecialCells(11).Row; // строка последней ячейки
Столбцов= Excel.Cells.SpecialCells(11).Column; // столбец последней ячейки
.
получается криво. В частности, количество столбцов определяется неверно, так как присутсвует столбец. который по всей «высоте» не заполнен данными, и после этого пустого столбца тоже есть столбцы с данными.
Вышеприведенное определение последнего столбца дает номер последнего заполненного столбца ПЕРЕД пустым столбцом, а это явно не все данные —
вопрос: как правильно определить самый поледний правый столбец с данными?
1 — 05.07.18 — 18:34
То есть у тебя в первых строках 3 столбца заполнено, а ниже
— сотня?
2 варианта попробуй:
1. Пересохранить файл, вдруг МС пересчитывает SpecialCells.
2. Функцию на VBA, цикл по строкам, цикл по столбцам.
Критерием конца цикла по строкам я брал пустые подряд 20 строк. Но этот код был на 1Сике.
2 — 05.07.18 — 18:54
(1) ТТН в виде эксельного файла. куча столбцов/ячеек. читаю — как выше — до 85 столбца и все. хотя есть справа еще столбцы и нужная ячейка в 91 столбце. оказалось 86 столбец по всей высоте — пустой. СпешалЦелс выдавал 85 столбцов.
3 — 05.07.18 — 18:55
1. не пойдет, сильно много файлов и вообще противоречит моему чувству прекрасного.
2. бяка.
4 — 05.07.18 — 19:15
как-то вот так типа наверное
Excel_Лист = Excel.Worksheets(i);//просмотрим ячейки одного листа
первИспСтрока = Excel_Лист.UsedRange.Row;
ВсегоСтрок = первИспСтрока + Excel_Лист.UsedRange.Rows.Count -1;
первИспСтолбец = Excel_Лист.UsedRange.Column;
ВсегоСтолбцов = первИспСтолбец + Excel_Лист.UsedRange.Columns.Count -1;
Excel: метод SpecialCells неверно определяет последний столбец. Помогите!!!
5 — 05.07.18 — 19:15
(2) Если у тебя постоянный формат, то храни ширину как параметр прямо в коде или рядом. Используй функцию «АНеТТНЛиВыМнеПодсунули»
6 — 05.07.18 — 19:19
(5) это понятно, но некузяво (примерно так и сделал в параметрах функции).
7 — 05.07.18 — 19:20
.. и как максимально быстро считать Эксель в ТЗ..? поячеечное чтение из экселя — очень долго…
8 — 05.07.18 — 20:06
(6) Шум на входе приводит к шуму на выходе.
Более того, пользователь (нет, тот кто несёт вред вместо пользы — это вредзователь) сможет создать достаточно кривой бланк xls, который читать можно будет только полным перебором ячеек.
(7) Забыл. Именно с семёркой я работал с неприлично большими файлами. Что-то брал у УжасБухгалтера и быстренько допиливал.
9 — 05.07.18 — 20:16
UsedRange()?
А вообще бывает так, что область данных в файле принудительно задают вместо автомата, но не помню, где это менять.
10 — 05.07.18 — 23:55
(7) Через ADO, если структура регулярная и плоская.
11 — 06.07.18 — 00:06
(0) Самый лучший вариант знаешь какой?
Выкинуть эксель нафик и файлы его формата тоже.
Нынче 21 век и пора уже использовать json или хотя бы xml и специальные системы для создания/редактирования/просмотра структурированных упорядоченных данных.
12 — 06.07.18 — 00:10
(11) Скажи это бюджету и всяким тендерам. Работаем с тем, что получаем, а получаем сотни ТОРГ12 и/или ТТН в виде экселевских файлов это и есть максимальный вариант автоматизации для участника цепочки передачи тмц.
13 — 06.07.18 — 00:12
(12) VBA скриптом внутри Экселя разобрать всю сотню и слить в один текстовый. Потом с спокойно, с комфортом загрузить.
14 — 06.07.18 — 00:29
SpecialCells(11).Address даёт букву на самом деле последнего столбца.
15 — 06.07.18 — 00:44
(13) Я тут в одной ветке (ибо сам не спец) попросил файл порезать на части (кстати, не забыть оплатить надо) — ну да, режет скрипт на части. только GUI серверный лег (Разрезать большой Excel-файл с кучей типовых ТОРГ12 по одной). Спеца для написания на ВБА дольше будет найти чем тупо по 1С-ному сделать все..
16 — 06.07.18 — 00:45
LastCellAddress = Cells.SpecialCells(11).Address
LastColumnName = Mid(LastCellAddress, 2, InStr(1, LastCellAddress, «$»))
LastColumnNumber = Columns(LastColumnName).Column
17 — 06.07.18 — 00:45
(14) то есть SpecialCells(11) вернет 85 столбец, а SpecialCells(11).Address — даст букву 115 столбца?
18 — 06.07.18 — 00:45
да, сам проверил и удивился
19 — 06.07.18 — 06:37
(18) однако… надо будет проверить…
и потом буквы столбца преобразовывать в число столбца.
а если включить в экселе настройку вывода адреса столбцов в виде чисел, а не букв, интересно что будет…
20 — 06.07.18 — 09:49
(15) Такая делилка делается за полчаса на Lazarus. Рекомендую. Там есть хорошая либа для excel. Неделю уже страдаешь из за такой ерунды.
21 — 06.07.18 — 10:07
(0) попробовал записать макрос нажатия Ctrl+End
дало: ActiveCell.SpecialCells(xlLastCell).Select
возможно, xlLastCell тебя спасет?
22 — 06.07.18 — 10:13
xlLastCell = 11
23 — 06.07.18 — 10:15
24 — 06.07.18 — 10:22
(20) да сделано уже давно. но перфекционизм не дает спать спокойно.. встаю ночью.. брожу.. руки текладу просят…
blutang
25 — 06.07.18 — 11:02
(19) в (16) уже всё преобразовано А настройка вывода ничего не изменит: Address всё равно в буквах столбцы выдаст.
На большом листе, если вы хотите быстро и легко определить последнюю строку или столбец, содержащий значения, вы можете просто перетащить полосу прокрутки, чтобы найти ее. Но будет больно, если на вашем листе будут тысячи строк данных. В этой статье я расскажу о некотором полезном коде VBA, который поможет вам решить эту задачу.
Найдите последнюю строку или столбец с данными с помощью кода VBA
Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Найдите последнюю строку или столбец с данными с помощью кода VBA
Большинство из нас может подумать о том, чтобы найти последнюю ячейку, нажав Ctrl + Конец клавиши, чтобы найти последнюю строку и столбец, но сочетание клавиш не найдет ячейку с точным значением, если есть некоторые ячейки, форматирование которых находится ниже диапазона данных. Итак, используйте следующий код VBA:
1. Активируйте свой рабочий лист, на котором вы хотите определить последнюю строку или столбец с данными.
2. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.
3. Затем нажмите Вставить > Модулии вставьте следующий код в Окно модуля.
Код VBA: найти последнюю строку с данными
Sub sblastRowOfASheet()
'Update 20140603
Dim xLastRow As Long
xLastRow = Application.ActiveSheet.Cells.SpecialCells(xlLastCell).Row
MsgBox "Last Used Row: " & xLastRow
Do While Application.CountA(ActiveSheet.Rows(xLastRow)) = 0 And xLastRow <> 1
xLastRow = xLastRow - 1
Loop
MsgBox "Last Row with Data: " & xLastRow
End Sub
4, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится окно подсказки, в котором будет указан номер строки используемого диапазона. Смотрите скриншот:
5. Продолжайте нажимать OK , на этот раз последний номер строки со значениями был отображен, как показано на следующем снимке экрана:
Примечание: Чтобы найти последний столбец с данными, примените этот код:
Код VBA: найти последний столбец с данными
Sub sblastcolumnOfASheet()
'Update 20140603
Dim xLastcolumn As Long
xLastcolumn = Application.ActiveSheet.Cells.SpecialCells(xlLastCell).Column
MsgBox "Last Used column: " & xLastcolumn
Do While Application.CountA(ActiveSheet.Columns(xLastcolumn)) = 0 And xLastcolumn <> 1
xLastcolumn = xLastcolumn - 1
Loop
MsgBox "Last column with Data: " & xLastcolumn
End Sub
Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Если вы хотите напрямую найти и выбрать последнюю строку или столбец с данными в Excel, Выбрать последнюю строку Выбрать последний столбец коммунальные услуги Kutools из Excel могу помочь тебе. Пожалуйста, сделайте следующее.
1. Если вы хотите найти и выбрать последнюю строку с данными, нажмите Кутулс > Выберите > Выбрать последнюю ячейку > Последняя строка. Смотрите скриншот:
Внимание: Чтобы найти и выбрать последний столбец с данными, нажмите Кутулс > Выберите > Выбрать последнюю ячейку > Последний столбец.
Затем будет найдена и немедленно выбрана последняя строка или столбец с данными на текущем листе.
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Найдите и выберите последнюю строку или столбец с данными с помощью Kutools for Excel
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Loading…
Дата занятия: 09 апреля 2020 г.
Тема занятия: «Работа с электронными таблицами Excel».
Рекомендации: |
Обучающие изучают предоставленный материал и прорабатывают материал самостоятельно. |
Для занятия понадобится: |
Доступ к видеохостингу «Уoutube». Доступ к табличный редактору Excel. |
Подготовка к занятию: |
Откройте «Уoutube». Откройте табличный редактор Excel. |
Цель работы: изучить табличный редактор Excel., выполнить практическую работу в данном редакторе.
Краткие теоретические материалы по теме работы
Табличный редактор Excel
Для того, чтобы ознакомиться с табличным редактором Excel наглядно, предлагаю пройти по ссылкам и посмотреть видео:
Возможно вы знаете, что программа Excel входит в пакет офисных программ Microsoft Office и является, пожалуй, самой известной и популярной программой из категории электронных таблиц.
Excel стал своеобразным стандартом в индустрии и одним из основных преимуществ программы является ее универсальность. Хоть и есть некоторые общепринятые сферы, в которых используется Excel, тем не менее, возможности программы если и не безграничны, то очень широки.
Вот основные сферы, в которых применяется Excel:
- произведение расчетов практически любой сложности;
- автоматизация однотипных расчетов;
- создание отчетов;
- организация списков и перечней;
- анализ и обработка числовых данных;
- создание диаграмм и графиков на основе данных;
- создание рисунков и схем.
И еще много чего другого, ведь Excel поддерживает язык программирования VBA (Visual Basic for Applications), а это означает, что на базе Excel можно создавать свои программы под какие-то узко специализированные задачи.
И все эти возможности доступны каждому!
В среде обычных пользователей бытует мнение, что Excel — это сложная и трудно осваиваемая программа… Но это совсем не так и мы с вами сделаем в этом курсе пять простых шагов, которые, как я надеюсь, развеют миф о «сложности Эксель».
Я считаю, что практика — лучший учитель и все новое следует осваивать именно на конкретных примерах, а не в теории. Поэтому данный мини-курс будет практическим. Все нужные нам инструменты мы будем осваивать по мере необходимости.
Но как бы мне не хотелось миновать теорию, все же есть некоторые базовые вещи, о которых необходимо рассказать в самом начале, так как в дальнейшем мы будем к ним постоянно обращаться. Я имею в виду интерфейс (внешний вид) программы, а также некоторые ее ключевые элементы.
Все документы, созданные в программе Excel, называются книгами и файлы рабочих книг имеют расширение .xlsx (в более старых версиях Excel расширение было .xls).
Задания для проверки.
Технология выполнения задания:
- Запустите программу Microsoft Excel. Внимательно рассмотрите окно программы.
Документы, которые создаются с помощью EXCEL , называются рабочими книгами и имеют расширение . XLS . Новая рабочая книга имеет три рабочих листа, которые называются ЛИСТ1, ЛИСТ2 и ЛИСТ3. Эти названия указаны на ярлычках листов в нижней части экрана. Для перехода на другой лист нужно щелкнуть на названии этого листа.
Действия с рабочими листами:
- Переименование рабочего листа.Установить указатель мыши на корешок рабочего листа и два раза щелкнуть левой клавишей или вызвать контекстное меню и выбрать команду Переименовать. Задайте название листа «ТРЕНИРОВКА»
- Вставка рабочего листа.Выделить ярлычок листа «Лист 2», перед которым нужно вставить новый лист, и с помощью контекстного меню вставьте новый лист и дайте название «Проба» .
- Удаление рабочего листа. Выделить ярлычок листа «Лист 2», и с помощью контекстного меню удалите.
Ячейки и диапазоны ячеек.
Рабочее поле состоит из строк и столбцов. Строки нумеруются числами от 1 до 65536. Столбцы обозначаются латинскими буквами: А, В, С, …, АА, АВ, … , IV , всего – 256. На пересечении строки и столбца находится ячейка. Каждая ячейка имеет свой адрес: имя столбца и номер строки, на пересечении которых она находится. Например, А1, СВ234, Р55.
Для работы с несколькими ячейками их удобно объединять их в «диапазоны».
Диапазон – это ячейки, расположенные в виде прямоугольника. Например, А3, А4, А5, В3, В4, В5. Для записи диапазона используется «:»: А3:В5
8:20 – все ячейки в строках с 8 по 20.
А:А – все ячейки в столбце А.
Н:Р – все ячейки в столбцах с Н по Р.
В адрес ячейки можно включать имя рабочего листа: Лист8!А3:В6.
- Выделение ячеек в Excel
Что выделяем
Действия
Одну ячейку
Щелчок на ней или перемещаем выделения клавишами со стрелками.
Строку
Щелчок на номере строки.
Столбец
Щелчок на имени столбца.
Диапазон ячеек
Протянуть указатель мыши от левого верхнего угла диапазона к правому нижнему.
Несколько диапазонов
Выделить первый, нажать SCHIFT + F 8, выделить следующий.
Всю таблицу
Щелчок на кнопке «Выделить все» (пустая кнопка слева от имен столбцов)
Можно изменять ширину столбцов и высоту строк перетаскиванием границ между ними.
Воспользуйтесь полосами прокрутки для того, чтобы определить сколько строк имеет таблица и каково имя последнего столбца.
Внимание!!! Чтобы достичь быстро конца таблицы по горизонтали или вертикали, необходимо нажать комбинации клавиш: Ctrl+→ — конец столбцов или Ctrl+↓ — конец строк. Быстрый возврат в начало таблицы — Ctrl+Home.
В ячейке А3 Укажите адрес последнего столбца таблицы.
Сколько строк содержится в таблице? Укажите адрес последней строки в ячейке B3.
- В EXCEL можно вводить следующие типы данных:
- Числа.
- Текст (например, заголовки и поясняющий материал).
- Функции (например, сумма, синус, корень).
- Формулы.
Данные вводятся в ячейки. Для ввода данных нужную ячейку необходимо выделить. Существует два способа ввода данных:
- Просто щелкнуть в ячейке и напечатать нужные данные.
- Щелкнуть в ячейке и в строке формул и ввести данные в строку формул.
Нажать ENTER .
Введите в ячейку N35 свое имя, выровняйте его в ячейке по центру и примените начертание полужирное.
Введите в ячейку С5 текущий год, используя строку формул.
- Изменение данных.
- Выделить ячейку и нажать F 2 и изменить данные.
- Выделить ячейку e щелкнуть в строке формул и изменить данные там.
Для изменения формул можно использовать только второй способ.
Измените данные в ячейке N35, добавьте свою фамилию. используя любой из способов.
Результаты задания на обратную связь просьба записать в электронном формате, правильно оформить, указать, дату, тему, цель и прислать на электронную почту преподавателю rock94@bk.ru вашего объединения или в группу мессенджера WhatsApp.
На чтение 10 мин. Просмотров 47.7k.
Итог: узнаете, как найти последнюю строку, столбец или ячейку в таблице с использованием трех различных методов на VBA. Используемый метод зависит от макета данных и от того, содержит ли лист пустые ячейки.
Уровень мастерства: средний
Видео: 3 части серии как найти последнюю ячейку с VBA
Видео лучше всего просматривать в полноэкранном режиме HD
Загрузите файл, содержащий код:
Find Last Cell VBA Примеры.xlsm (79.6 KB)
Поиск последней ячейки — все о данных
Поиск последней используемой строки, столбца или ячейки — это одна из самых распространенных задач при написании макросов и приложений VBA. Как и все в Excel и VBA, есть много различных способов.
Выбор правильного метода в основном зависит от того, как выглядят ваши данные.
В этой статье я объясняю три различных метода VBA объекта Range, которые мы можем использовать для поиска последней ячейки на листе. Каждый из этих методов имеет плюсы и минусы, а некоторые выглядят страшнее других. 🙂
Но понимание того, как работает каждый метод, поможет вам узнать, когда их использовать и почему.
#1 – The Range.End() Method
Range.End() очень похож на сочетание клавиш Ctrl+Arrow. В VBA можно использовать этот метод, чтобы найти последнюю не пустую ячейку в одной строке или столбце.
Диапазон.Пример кода End VBA
Sub Последняя_ячейка() 'Найти последнюю не пустую ячейку в одной строке или столбце Dim lRow As Long Dim lCol As Long 'Найти последнюю не пустую ячейку в столбце А(1) lRow = Cells(Rows.Count, 1).End(xlUp).Row 'Найти последнюю непустую ячейку в строке 1 lCol = Cells(1, Columns.Count).End(xlToLeft).Column MsgBox "Последняя строка: " & lRow & vbNewLine & _ "Последний столбец: " & lCol End Sub
Чтобы найти последнюю использованную строку в столбце, этот
метод начинается с последней ячейки столбца и идет вверх (xlUp), пока не найдет
первую непустую ячейку.
Оператор Rows.Count возвращает количество всех строк на рабочем листе. Поэтому мы в основном указываем последнюю ячейку в столбце A листа (ячейка A1048567) и поднимаемся до тех пор, пока не найдем первую непустую ячейку.
Это работает так же с поиском последнего столбца. Он начинается с последнего столбца в строке, затем идет влево, пока в столбце не будет найдена последняя непустая ячейка. Columns.Count возвращает общее количество столбцов на листе. Итак, мы начинаем с последнего столбца и идем налево.
Аргумент для метода End указывает, в каком направлении идти.
Возможные варианты: xlDown, xlUp, xlToLeft, xlToRight.
Плюсы Range.End
- Range.End прост в использовании и понимании, так как он работает так же, как сочетания клавиш Ctrl+Arrow.
- Может использоваться для поиска первой пустой ячейки или последней непустой ячейки в одной строке или столбце.
Минусы Range.End
- Range.End работает только с одной строкой или столбцом. При наличии диапазона данных, содержащего пробелы в последней строке или столбце, может быть трудно определить, в какой строке или столбце выполнять метод.
- Если вы хотите найти последнюю используемую ячейку, то вы должны оценить по крайней мере два оператора. Один, чтобы найти последнюю строку и один, чтобы найти последний столбец. Затем их можно объединить для ссылки на последнюю ячейку.
Вот справочные статьи для Range.End
- Страница справки MSDN для Range.End
- Справка MSDN для перечислений xlDirection
#2 – The Range.Find() Method
Метод Range.Find — я предпочитаю этот способ, чтобы найти последнюю строку, столбец или ячейку. Он самый универсальный, но и самый страшный.
У Range.Find много аргументов, но пусть это вас не пугает. Когда вы знаете, что они делают, вы можете использовать Range.Find для многих вещей в VBA.
Range.Find — это в основном способ программирования меню «Find» в Excel. Он делает то же самое, и большинство аргументов Range.Find являются опциями в меню Find.
Пример кода Range.Find
Ниже
приведен код для поиска последней непустой строки.
Sub Последняя_ячейка_Find() 'Находит последнюю непустую ячейку на листе / диапазоне. Dim lRow As Long Dim lCol As Long lRow = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row MsgBox "Последняя строка: " & lRow End Sub
Метод Range.Find. Пояснения
Метод Find ищет первую непустую ячейку («*»). Звездочка представляет
собой символ подстановки, который ищет любой текст или числа в ячейке.
Начиная с ячейки A1, он перемещается назад (xlPrevious) и
фактически начинает поиск в самой последней ячейке на листе. Затем он
перемещается справа налево (xlByRows) и проходит по каждой строке, пока не
найдет непустую ячейку. При обнаружении непустого он останавливается и
возвращает номер строки.
Вот подробное объяснение каждого аргумента.
- What:=”*” — звездочка — это символ подстановки, который находит любой текст или число в ячейке. Это в основном то же самое, что и поиск непустой ячейки.
- After:=Range(“A1”)— начать поиск после ячейки А1, первой ячейки на листе. Это означает, что A1 не будет искать. Поиск начнется после A1, и следующая ячейка, которую он ищет, зависит от SearchOrder и SearchDirection. Этот аргумент можно изменить, чтобы он начинался в другой ячейке, просто помните, что поиск фактически начинается в ячейке после указанной.
- LookAt: = xlPart — это будет смотреть на любую часть текста внутри ячейки. Другой вариант — xlWhole, который будет пытаться соответствовать всему содержимому ячейки.
- LookIn: = xlFormulas — Это заставляет Find искать в формулах, и это важный аргумент. Другой вариант — xlValues, который будет искать только значения. Если у вас есть формулы, которые возвращают пробелы (= IF (A2> 5, «Ok», «»), то вы можете считать это непустой ячейкой. При указании LookIn в качестве xlFormulas эта формула будет считаться непустой, даже если возвращаемое значение пустое.
- SearchOrder: = xlByRows — это говорит Find, чтобы искать через каждую целую строку прежде, чем перейти к следующей. Направление поиска слева направо или справа налево зависит от аргумента SearchDirection. Другой вариант здесь — xlByColumns, который используется при поиске последнего столбца.
- SearchDirection: = xlPrevious — указывает направление поиска. xlPrevious означает, что он будет искать справа налево или снизу вверх. Другой вариант — xlNext, который перемещается в противоположном направлении.
- MatchCase: = False — это говорит Find, чтобы не рассматривать заглавные или строчные буквы. Если установить значение True, это поможет. Этот аргумент не является необходимым для этого сценария.
Да, я знаю, что это много, но надеюсь, у вас будет лучшее понимание того, как использовать эти аргументы, чтобы найти что-нибудь на листе.
Плюсы
Range.Find
- Find ищет во всем диапазоне последнюю непустую строку или столбец. Он НЕ ограничен одной строкой или столбцом.
- Последняя строка в наборе данных может содержать пробелы, и Range.Find все равно найдет последнюю строку.
- Аргументы могут использоваться для поиска в разных направлениях и для определенных значений, а не только пустых ячеек.
Минусы Range.Find
- Это ужасно. Метод содержит 9 аргументов. Хотя требуется только один из этих аргументов (Что), вы должны привыкнуть использовать хотя бы первые 7 аргументов. В противном случае метод Range.Find по умолчанию будет использовать ваши последние использованные настройки в окне поиска. Это важно. Если вы не укажете необязательные аргументы для LookAt, LookIn и SearchOrder, тогда метод Find будет использовать те параметры, которые вы использовали последними в окне поиска Excel.
- Нахождение последней ячейки требует двух утверждений. Один, чтобы найти последний ряд и один, чтобы найти последний столбец. Затем вы должны объединить их, чтобы найти последнюю ячейку.
Macro Recorder выручит!
Range.Find — все еще мой любимый метод для нахождения последней ячейки из-за ее универсальности. Но нужно много напечатать и запомнить. К счастью, вам это не нужно.
Вы можете использовать макро рекордер, чтобы быстро создать код со всеми аргументами.
- Запустить макро рекордер
- Нажмите Ctrl + F
- Затем нажмите кнопку «Найти далее»
Код для метода Find со всеми аргументами будет сгенерирован устройством записи макросов.
Используйте пользовательскую функцию для метода Find
Вы также можете использовать пользовательскую функцию (UDF) для метода поиска. Последняя функция Ron de Bruin — прекрасный пример. Вы можете скопировать эту функцию в любой проект или модуль кода VBA и использовать ее для возврата последней строки, столбца или ячейки.
У меня также есть аналогичная функция в примере рабочей книги. Моя функция просто имеет дополнительные аргументы для ссылки на лист и диапазон для поиска.
Вот справочные статьи для Range.Find
- MSDN Help Article for Range.Find Method
#3 – Range.SpecialCells (xlCellTypeLastCell)
Метод SpecialCells делает то же самое, что и нажатие сочетания клавиш Ctrl + End, и выбирает последнюю использованную ячейку на листе.
Пример кода SpecialCells (xlCellTypeLastCell)
Sub Range_SpecialCells_Method() MsgBox Range("A1").SpecialCells(xlCellTypeLastCell).Address End Sub
На самом деле это самый простой способ найти последнюю использованную ячейку. Однако этот метод находит последнюю использованную ячейку, которая может отличаться от последней непустой ячейки.
Часто вы будете нажимать Ctrl + End на клавиатуре и попадете в какую-нибудь ячейку вниз в конце листа, который определенно не используется. Это может произойти по ряду причин. Одной из распространенных причин является то, что свойства форматирования для этой ячейки были изменены. Простое изменение размера шрифта или цвета заливки ячейки помечает ее как использованную ячейку.
Плюсы Range.SpecialCells
- Вы можете использовать этот метод, чтобы найти «используемые» строки и столбцы в конце листа и удалить их. Сравнение результата Range.SpecialCells с результатом Range.Find для непробелов может позволить вам быстро определить, существуют ли какие-либо неиспользуемые строки или столбцы на листе.
- Удаление неиспользуемых строк / столбцов может уменьшить размер файла и увеличить полосу прокрутки.
Минусы Range.SpecialCells
- Excel только сбрасывает последнюю ячейку при сохранении книги. Поэтому, если пользователь или макрос удаляет содержимое некоторых ячеек, этот метод не найдет истинную последнюю ячейку, пока файл не будет сохранен.
- Он находит последнюю использованную ячейку, а НЕ последнюю непустую ячейку.
Другие методы поиска последней ячейки
Что ж, это должно охватывать основы поиска последней
использованной или непустой ячейки на листе. Если ваш лист содержит объекты
(таблицы, диаграммы, сводные таблицы, слайсеры и т. Д.), Вам может
потребоваться использовать другие методы для поиска последней ячейки. Я объясню
эти методы в отдельном посте.
У меня также есть статья о том, как найти ПЕРВУЮ ячейку в листе.
Пожалуйста, оставьте комментарий ниже, если у вас есть какие-либо вопросы, или вы все еще не можете найти последнюю ячейку. Я буду рад помочь!