We use Range.SpecialCells() method in the below VBA Code to find and return details of last used row, column, and cell in a worksheet.
Sample Data:
Sample Data
Syntax:
expression.SpecialCells (Type, Value)
Eg: To return the last used cell address in an activesheet. ActiveSheet.Range(“A1”).SpecialCells(xlCellTypeLastCell).Address
VBA Code:
Declaring Variables:
Variable | Data Type | Comments |
---|---|---|
LastRow | Long | Find and store last used row |
LastCol | Long | store last used column |
LastCell | String | store last used cell address |
'Variable Declaration Dim LastRow As Long, LastCol As Long, LastCell As String
Use SpecialCells function to find last used row/column/cell
'Find Last Used Row LastRow = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row 'Find Last Used Column LastCol = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Column 'Find Last Used Cell LastCell = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Address
Concatenate all three variables (LastRow/LastCol/LastCell), add a new line between variables use Chr(10). Show the final output in an Excel Message box.
'Display the last used row/column/cell MsgBox "Last Used Row : " & LastRow & Chr(10) & "Last Used Column : " & LastCol & Chr(10) & "Last Used Cell : " & LastCell
Implementation:
Follow the below steps to find the Last Used Row and Last Used Column in Excel VBA
Step 1: Add a shape (Find Last Row/Column/Cell) on your worksheet.
Step 2: Right-click on “Find Last Row/Column/Cell” and “Assign Macro..”
Step 3: Select “findLastUsedCell”, you can see a list of macros if available in your workbook
Step 4: Save your excel file as “Excel Macro-Enabled Workbook” *.xlsm
Step 5: Click “Find Last Row/Column/Cell” to execute the VBA code. Code will popup below output for the above given example (Output).
Output:
Return the number of columns in a given array or reference
How to Get Excel Last Value in Column
The COLUMNS Function[1] in Excel is an Excel Lookup/Reference function. It is useful for looking up and providing the number of columns in a given reference or array. The COLUMNS function, after specifying an Excel range, will return the number of columns that are contained within that range.
Formula
=COLUMNS(array)
The COLUMNS function in Excel includes only one argument – array. The array argument is a required argument. It is the reference to a range of cells or an array or array formula for which we want the number of columns. The function returns a numerical value.
How to use the COLUMNS Function in Excel?
It is a built-in function that can be used as a worksheet function in Excel. To understand the uses of this function, let’s consider a few examples:
Example 1
Let’s see how this function works when we provide the following references:
Suppose we wish to find out the number of columns in a range. The most basic formula used is = COLUMNS(rng).
In the first reference above, we used the COLUMNS function to get the number of columns from range A6:F6. We got the result as 6 as shown in the screenshot below:
So, this function counted the number of columns and returned a numerical value as the result.
When we gave the cell reference B6, it returned the result of 1, as only one reference was given.
Lastly, when we provided the formula F1:F9, it counted the number of columns as 1 and the function returned the result accordingly.
Thus, in this function, “array” can be an array, an array formula, or a reference to a single contiguous group of cells.
COLUMNS Function – Example 2
Using Columns with other formulas: If we wish to get the address of the first cell in a named range, we can use the ADDRESS function together with the ROW and COLUMN functions. The formula to be used is below:
What happens in this formula is that the ADDRESS function builds an address based on a row and column number. Then, we use the ROW function to generate a list of row numbers, which are then shifted by adding ROWS(B5:D5)-1, so that the first item in the array is the last row number:
ROW(B5:D5)+ROWS(B5:D5)-1
We do the same for COLUMN and COLUMNS: COLUMN(B5:D5)+COLUMNS(B5:D5)-1
What happens is that the ADDRESS function now collects and returns an array of addresses. If we enter the formula in a single cell, we just get the item from the array, which is the address corresponding to the last cell in a range.
COLUMNS Function – Example 3
Now let’s see how to find out the last column in a range. The data given is as follows:
The formula used is =MIN(COLUMN(A3:C5))+COLUMNS(A3:C5)-1
Using the formula above, we can get the last column that is in a range with a formula based on the COLUMN function.
When we give a single cell as a reference, the COLUMN function will return the column number for that particular reference. However, when we give a range that contains multiple columns, the COLUMN function will return an array that contains all column numbers for the given range.
If we wish to get only the first column number, we can use the MIN function to extract just the first column number, which will be the lowest number in the array.
Once we get the first column, we can just add the total columns in the range and subtract 1, to get the last column number.
The result is shown below:
For a very large number of ranges, we can use the INDEX function instead of the MIN function. The formula would be:
=COLUMN(INDEX(range,1,1))+COLUMNS(range)-1
Click here to download the sample Excel file
Additional Resources
Thanks for reading CFI’s guide to important Excel functions! By taking the time to learn and master these functions, you’ll significantly speed up your financial analysis. To learn more, check out these additional CFI resources:
- Excel Functions for Finance
- Advanced Excel Formulas Course
- Advanced Excel Formulas You Must Know
- Excel Shortcuts for PC and Mac
- See all Excel resources
Article Sources
- COLUMNS Function
На чтение 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
Karataev Пользователь Сообщений: 2306 |
да такой способ работает. попробую его использовать. спасибо |
Максим Зеленский Пользователь Сообщений: 4646 Microsoft MVP |
#32 24.11.2014 14:47:56
Выделилось неправильно что? Первая последовательность выделяет все ячейки с константами (не-формулами). Shift-Enter выделит крайнюю правую заполненную в последней строке с константами. F1 творит чудеса |
||
Михаил С. Пользователь Сообщений: 10514 |
#33 24.11.2014 14:52:50
Та, которая ниже. |
||
Karataev Пользователь Сообщений: 2306 |
Максим Зеленский
ваш способ превращает определение последней строки и столбца в ребус- нужно представить,что ниже,что выше. проще сделать макрос. |
Максим Зеленский Пользователь Сообщений: 4646 Microsoft MVP |
#35 24.11.2014 15:22:23
Михаил, так я и пытаюсь у автора топика узнать, кого он ищет как последнюю. И что он будет искать макросом F1 творит чудеса |
||
Karataev Пользователь Сообщений: 2306 |
Максим Зеленский
нужно найти последнюю строку и столбец с данными. это означает,что в ячейке есть какие-нибудь данные. |
Karataev Пользователь Сообщений: 2306 |
Максим Зеленский
по поводу поста 32. на свежую голову посмотрел. оказывается на листе смесь констант и формул,поэтому неправильно выделилось, т.к. формулы не захватились. т.к. одновременно нельзя выделять и константы и формулы,то ваш способ не подходит. остается только Найти и заменить и shift+enter. |
Ну так и предполагалось. Метод Михаила лучше. Но увы, с последним столбцом придется помучиться |
|
Karataev Пользователь Сообщений: 2306 |
метод Михаила не лучше ,а единственный способ без макросов и формул поэтому удобнее,наверное,макрос использовать. Изменено: Karataev — 25.11.2014 09:16:33 |
Karataev Пользователь Сообщений: 2306 |
но у вас решение с помощью формул. формулам для моей задачи не подходит. |
TSN Пользователь Сообщений: 217 |
#42 25.11.2014 09:59:17
Именно так.
|
||||
Karataev Пользователь Сообщений: 2306 |
смысл этой темы -найти решение без vba. поэтому не понимаю,зачем вы это пишите в этой теме . не вижу логики в ваших действиях |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#44 25.11.2014 10:03:21
<#0> |
||||
Karataev Пользователь Сообщений: 2306 |
теперь понятно. люди думают,что я не знаю,как узнать последнюю строку и столбец с помощью макроса. в этой теме не нужно писать,как узнать последнюю строку и столбец с помощью макроса. Изменено: Karataev — 25.11.2014 10:06:23 |
Строгий ТС |
|
TSN Пользователь Сообщений: 217 |
#47 25.11.2014 10:07:43
Вот именно Вы определитесь что Вам нужно. Изменено: TSN — 25.11.2014 14:40:34 |
||||||
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#48 25.11.2014 10:08:55
Про исключение формул в теме ничего нет. <#0> |
||||
Karataev Пользователь Сообщений: 2306 |
в этой теме 47 постов и только один пост содержит нужную информацию. я бы название темы еще изменил -добавил «и без формул» Изменено: Karataev — 25.11.2014 10:10:53 |
vikttur Пользователь Сообщений: 47199 |
#50 25.11.2014 11:00:26 TSN, прошу обращать внимание на свои цитаты. Исправьте, пожалуйста. Karataev , название поменял. Но, так как предложены решения и формулами, и в VBA, убрал «без VBA».
Решение получено? |
||
Karataev Пользователь Сообщений: 2306 |
нет, в excel нет средств для решения этой задачи. нужно использовать макрос. |
Максим Зеленский Пользователь Сообщений: 4646 Microsoft MVP |
#52 25.11.2014 11:20:26
то есть, если на листе заполнено две ячейки, B4 и D2, вы хотите найти столбец D и строку 4? F1 творит чудеса |
||
Karataev Пользователь Сообщений: 2306 |
#53 25.11.2014 11:23:39 Максим Зеленский
приходится много действий делать. проще сделать макрос и одним щелчком узнать всю информацию. |
На большом листе, если вы хотите быстро и легко определить последнюю строку или столбец, содержащий значения, вы можете просто перетащить полосу прокрутки, чтобы найти ее. Но будет больно, если на вашем листе будут тысячи строк данных. В этой статье я расскажу о некотором полезном коде 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% и сокращает количество щелчков мышью на сотни каждый день!
+3
Узнать последнюю строку можно следующими примерами:
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;
Узнать последнюю строку можно следующими примерами:
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
Хотите узнать больше по этому вопросу?
Подпишитесь на нашу рассылку новостей
Подписаться
Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:
Предложить статью
Возвращает последную ячейку
Visual Basic | ||
|
но не всегда корректно работает.
поэтому далее
Для 97 офиса
можно использовать в цикле
Application.CountA(Rows(lLast)) возвращает количество непустых ячеек в строке. Аналогично для колонки.
Пример (для строки)
Visual Basic | ||
|
Для 2000
Можно перед использованием обратится к обьекту UsedRange, после чего возвращает корректное значение последней ячейки.
Пример
Visual Basic | ||
|