номер строки в excel vba
VBA Excel. Номер последней заполненной строки
Поиск номера последней заполненной строки с помощью кода VBA Excel для таблиц, расположенных как в верхнем левом углу, так и в любом месте рабочего листа.
Таблица в верхнем левом углу
В первую очередь рассмотрим все доступные варианты поиска номера последней заполненной строки для таблиц, расположенных в верхнем левом углу рабочего листа. Такие таблицы обычно представляют собой простые базы данных в 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
Последняя строка любой таблицы
Вариант 1
Основная формула для поиска последней строки в любой таблице, не требующая соблюдения каких-либо условий:
PosStr = Cells(a, b).CurrentRegion.Cells(Cells(a, b).CurrentRegion.Cells.Count).Row
Вариант 2
Дополнительная формула с условием, что в первом столбце таблицы нет пустых ячеек:
PosStr = Cells(a, b).End(xlDown).Row
Если у вас на рабочем листе Excel есть записи вне таблиц, следите за тем, чтобы таблицы были окружены пустыми ячейками или пустыми ячейками и границами листа. Тогда не будет случайно внесенных заметок, примыкающих к таблицам, которые могут отрицательно повлиять на точность вычисления номера последней строки из кода VBA.
Как из адреса ячейки получить просто номер строки?
В результате выводит адрес ячейки, например J43, а мне нужно просто номер строки 43, чтобы потом использовать в цикле.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как получить номер строки ячейки в которую внесена функция макросом этой функции
Здравствуйте, помогите решить следущую проблему, у меня есть следующий макрос (файл прилагается).
Получить адрес ячейки и изменить номер строки
Добрый день! Мне нужно получить адрес последней непустой ячейки в каждой строке и затем изменить на.
Получить номер строки найденной ячейки Excel
Доброе время суток. Возник вопрос по поиску в Exele. а после получения нужной ячейки, узнать номер.
Как получить номер столбца известной ячейки? (EPPlus)
Хочу задать вычисляемое значение столбца worksheet.Cells в строке 21, чтобы получилось нечто вроде.
boomrest, нужен файл пример,что дано и что нужно получить,а не вариант кода,попробуйте протестируйте макрос test и приспособьте под Ваш вариант кода.
Для тех, кто не страдает извращениями
boomrest, протестируйте также макрос test1(для случая диапазона)
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как получит номер строки выделенной ячейки?
Подскажите как получит номер строки выделенной ячейки. Заранее благоларю за помощь!
Как получить параметры из строки адреса?
Как получить параметры из строки адреса в С например.
Как по адресу ячейки определить номер соответствующей строки?
У меня программа выполняет поиск по заданному значению. Находит искомую ячейку. Определяется ее.
Активная ячейка VBA | Как найти адрес столбца или строки активной ячейки?
Активная ячейка в Excel VBA
Для эффективной работы с кодированием VBA важно понимать концепцию объекта диапазона и свойств ячеек в VBA. В этих концепциях есть еще одна концепция, которую вам нужно изучить, это «активная ячейка VBA».
В Excel есть миллионы ячеек, и вы наверняка сомневаетесь, какая из них является активной. Для примера посмотрите на изображение ниже.
На самом изображении выше у нас есть много ячеек, чтобы определить, какая из них является активной ячейкой, очень просто, какая бы ячейка не была выбрана прямо сейчас, она называется «Активная ячейка» в VBA.
Даже когда в качестве диапазона ячеек выбрано множество ячеек, любая первая ячейка в выделении становится активной ячейкой. Например, посмотрите на изображение ниже.
В наших предыдущих статьях мы видели, как ссылаться на ячейки в VBA. По свойству Active Cell мы можем ссылаться на ячейку.
Например, если мы хотим выбрать ячейку A1 и вставить значение «Hello», мы можем записать его двумя способами. Ниже приведен способ выбора ячейки и вставки значения с помощью объекта VBA «RANGE».
Сначала будет выбрана ячейка A1 « Диапазон (« A1 »). Выбрать»
Затем он вставит значение «Hello» в диапазон ячейки A1 («A1»). Value = «Hello»
Теперь я удалю строку Range («A1»). Value = «Hello» и использую свойство Active Cell для вставки значения.
Точно так же сначала он выберет ячейку A1 « Диапазон (« A1 »). Выбрать»
Но здесь я использовал ActiveCell.Value = «Hello» вместо Range («A1»). Value = «Hello»
Причина, по которой я использовал свойство Active Cell, потому что в тот момент, когда я выбираю ячейку A1, она становится активной ячейкой. Таким образом, мы можем использовать свойство Excel VBA Active Cell для вставки значения.
Чтобы понять это еще лучше, давайте покажем адрес активной ячейки в окне сообщения. Теперь посмотрите на изображение ниже.
Запустите этот код с помощью клавиши F5 или вручную, тогда он покажет адрес активной ячейки в окне сообщения.
Выход:
Точно так же код ниже покажет значение активной ячейки.
Выход:
Код ниже покажет номер строки активной ячейки.
Выход:
Код ниже покажет номер столбца активной ячейки.
Выход:
Свойство Active Cell также имеет параметры. После ввода свойства ActiveCell откройте скобку, чтобы увидеть параметры.
Используя этот параметр, мы также можем ссылаться на другую ячейку.
Например, ActiveCell (1,1) означает, какая ячейка активна. Если вы хотите переместиться на одну строку ниже, вы можете использовать ActiveCell (2,1), здесь 2 не означает, что нужно переместиться на две строки вниз, а не только на одну строку вниз. Аналогично, если вы хотите переместить один столбец вправо, тогда это код ActiveCell (2,2)
Для примера посмотрите на изображение ниже.
На изображении выше активной ячейкой является A2, чтобы вставить значение в активную ячейку, вы пишете этот код.
Запустите этот код вручную или с помощью клавиши F5, это вставит значение «Hiiii» в ячейку.
Теперь, если вы хотите вставить то же значение в ячейку ниже, вы можете использовать этот код.
Это вставит значение в ячейку под активной ячейкой.
Если вы хотите вставить значение в один столбец справа, вы можете использовать этот код.
Это вставит «Hiiii» в следующую ячейку столбца активной ячейки.
Таким образом, мы можем ссылаться на ячейки в VBA, используя свойство Active Cell.
Надеюсь, вам понравилось. Спасибо, что уделили нам время.
Как определить номер строки в столбце в VB Excel
Здраствуйте!
Столкнулся со следующей проблемой:
Есть колонка, содержащая данные в след виде
А1
1 Иванов
2 Иванов
3 Иванов
4 Сидоров
5 Сидоров
6 Петров
7 Петров
8 Петров
Очень хочется (точнее очень надо, а то руки отваливаются вставлять пустые строки и в глазах троится, когда записей около 3000 шт):
1. Найти номер строки где начинаются след одинаковые значения
2. Добавить 2 пустые строки
3. Добавить в пустые строки столбца Фамилии
4. Создать переменные, содержащие номер строки и номер столбца, для посл операций с данными с соседними столбцами (как получить номер)
И так для каждой фамилии пока не кончатся данные
В результате:
А1
1 Иванов
2 Иванов
3 Иванов
4 Иванов – добавл строки и фамилии
5 Иванов – добавл строки и фамилии
6 Сидоров
7 Сидоров
8 Сидоров – добавл строки и фамилии
9 Сидоров – добавл строки и фамилии
10 Петров
11 Петров
12 Петров
13 Петров – добавл строки и фамилии
14 Петров – добавл строки и фамилии
Очень жду ответа. Думаю код будет не сложный, по крайней мере я на это надеюсь.
Заранее огромнейшей СПАСИБ.
Алексей.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Найти номер последней заполненной ячейки в столбце, Excel
Добрый день! Импортирую данные из таблицы Excel,таблица состоит из двух столбцов. Первый очень.
Как программно получить номер строки в Excel?
Кто знает как программно получить номер строки на которой выделена ячейка в базе данных Excel.
Имеется след табл ведется ежедневно
Иванов
вр нач вр кон длит операц К Вр ед Норм вр Оплач вр
07:00 08:00 60 мин делал то-то 80 шт 0,75 мин 0,5 мин 30 мин
08:00 09:00 60 мин делал то-то 100 шт 1,25 мин 1,0 мин 60 мин
сидоров
07:00 08:00 делал то-то и далее как у иванова
08:00 09:00 делал то-то и далее как у иванова
Далее надо
1. Просмотреть столбец фамилия
2. После Иванова добавить строки
3. После Сидорова добавить строки
и так по кажд фамилии
Фамилии постоянны и практически не меняются
Далее минуты переносятся в отд файл и напртив кажд фамилии стоит
присутствие на работе и оплачиваемое время
вот.
мой icq 212-749-159
Спасибо.
Сборник полезностей
пятница, 1 февраля 2013 г.
Excel VBA. На старт
Основы
‘ в ячейку А1 пишем «add note» + значение ячейки B1
Cells(1,1).Value = «add note » & Cells(1,2).Value
For Each oCell In Range(«A1:A10»).Cells
‘обработка
oCell.Value = oCell.Row ‘ присвоили номер строки
Next
Public Function insertRow()
Dim position As Integer
‘.
insertRow = position ‘возвращаемое значение
После написания нескольких функций во встроенном редакторе, меня нешуточно заинтересовало, как перенести строку кода на следующую физическую строку. Если посреди строки кода нажать enter, кроме ошибки мы ничего не добьемся. Оказывается, надо использовать «_»:
If ActiveSheet.Index = 1 _
Or ActiveSheet.Index = 4 Then
‘ действия
End If
Нарочно и не придумаешь.
Помимо массивов, в VBA следует обратить внимание на коллекции. Работать с ними просто:
Автоматическая нумерация строк таблицы
Это потому, что формула в строке А9 крайне смущена тем, что ссылается на удаленную ячейку. Поэтому если строки в таблице буду удаляться и добавляться, лучше сделать ссылку на ячейки другой страницы (=СТРОКА(Лист2!А1)).
Кнопки вставки и удаления строк
Само по себе добавление и удаление по имени кнопки сложности не представляет:
Private Sub InsertButton1_Click( position as Integer )
‘вставка строки перед строкой с номером position
Rows(position).Insert
End Sub
Private Sub DeleteButton1_Click()
Dim position as Integer
‘ ищем номер строки кнопки удаления
position = _ ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
‘ удаление кнопки
ActiveSheet.Shapes(Application.Caller).Delete
‘ удаление строки с номером position
Rows(position).Delete
End Sub
Для нахождения позиции первой строки таблицы будем использовать именованные ячейки.
Маловероятно, что пользователь создаст за секунду более одной строки (в комплекте с кнопкой ее удаления) с одинаковым начальным номером строки.
Проверка листа на правильное заполнение
В голову пришло два слегка костыльных способа решения (и честно говоря, если судить по форумам с обсуждением подобных проблем, кажется, что применительно к Excel по-другому их и не решишь).
Первый способ: в одном столбце, напротив каждой строки таблицы, формулой вычисляется, правильно ли заполнена строка. Тогда, проходясь по этому столбцу, мы можем сказать, в какой строке проблема. А при помощи условного форматирования проблемные ячейки могут подсвечиваться красным. Этого достаточно, если не надо точно знать, в какой ячейке проблема. При необходимости можно дальше обрабатывать эту строку по ячейкам. Способ хорош, если разные строки проверяются на разные условия (даже в рамках одной таблицы).