Excel Получить Номер Строки Текущей Ячейки
Знакомство с объектной моделью Excel следует начинать с такого замечательного объекта, как Range . Поскольку любая ячейка — это Range , то без знания, как с этим объектом эффективно взаимодействовать, вам будет затруднительно программировать для Excel. Это очень ладно-скроенный объект. При некоторой сноровке вы найдёте его весьма удобным в эксплуатации.
Что такое объекты?
Объекты Range
Работа с отдельными ячейками
Синтаксическая форма | Комментарии по использованию |
Range (» D5 «) или [ D5 ] | Ячейка D5 текущего листа. Полная и краткая формы. Тут применим только синтаксис типа A1, но не R1C1. То есть такая конструкция Range (» R1C2 «) — вызовет ошибку, даже если в книге Excel включен режим формул R1C1. Разумеется после этой формы вы можете обратиться к свойствам соответствующей ячейки. Например, Range (» D5 «) .Interior.Color = RGB(0, 255, 0) . |
Cells(5, 4) или Cells(5, «D») | Ячейка D5 текущего листа через свойство Cells . 5 — строка (row), 4 — столбец (column). Допустимость второй формы мало кому известна. |
Cells(65540) | Ячейку D5 можно адресовать и через указание только одного параметра свойсва Cells . При этом нумерация идёт слева направо, потом сверху вниз. То есть сначала нумеруется вся строка (2^14=16384 колонок) и только потом идёт переход на следующую строку. То есть Cells(16385) вернёт вам ячейку A2 , а D5 будет Cells(65540) . Пока данный способ выглядит не очень удобным. |
Работа с диапазоном ячеек
Синтаксическая форма | Комментарии по использованию |
Range ( «A1:B4 «) или [ A1:B4 ] | Диапазон ячеек A1:B4 текущего листа. Обратите внимание, что указываются координаты верхнего левого и правого нижнего углов диапазона. Причём первый указываемый угол вполне может быть правым нижним, это не имеет значения. |
Range(Cells(1, 1), Cells(4, 2)) | Диапазон ячеек A1:B4 текущего листа. Удобно, когда вы знаете именно цифровые координаты углов диапазона. |
Работа со строками
Синтаксическая форма | Комментарии по использованию |
Range (» 3:5 «) или [ 3:5 ] | Строки 3, 4 и 5 текущего листа целиком. |
Range (» A3:XFD3 «) или [ A3:XFD3 ] | Строка 3, но с указанием колонок. Просто, чтобы вы понимали, что это тождественные формы. XFD — последняя колонка листа. |
Rows (» 3:3 «) | Строка 3 через свойство Rows . Параметр в виде диапазона строк. Двоеточие — это символ диапазона. |
Rows(3) | Тут параметр — индекс строки в массиве строк. Так можно сослаться только не конкретную строку. Обратите внимание, что в предыдущем примере параметр текстовая строка » 3:3 » и она взята в кавычки, а тут — чистое число. |
Работа со столбцами
Синтаксическая форма | Комментарии по использованию |
Range (» B:B «) или [ B:B ] | Колонка B текущего листа. |
Range (» B1:B1048576 «) или [ B1:B1048576 ] | То же самое, но с указанием номеров строк, чтобы вы понимали, что это тождественные формы. 2^20=1048576 — максимальный номер строки на листе. |
Columns (» B:B «) | То же самое через свойство Columns . Параметр — текстовая строка. |
Columns(2) | То же самое. Параметр — числовой индекс столбца. «A» -> 1, «B» -> 2, и т.д. |
Весь лист
Синтаксическая форма | Комментарии по использованию |
Range (» A1:XFD1048576 «) или [ A1:XFD1048576 ] | Диапазон размером во всё адресное пространство листа Excel. Воспринимайте эту таблицу лишь как теорию — так работать с листами вам не придётся — слишком большое количество ячеек. Даже современные компьютеры не смогут помочь Excel быстро работать с такими массивами информации. Тут проблема больше даже в самом приложении. |
Range (» 1:1048576 «) или [ 1:1048576 ] | То же самое, но через строки. |
Range (» A:XFD «) или [ A:XFD ] | Аналогично — через адреса столбцов. |
Cells | Свойство Cells включает в себя ВСЕ ячейки. |
Rows | Все строки листа. |
Columns | Все столбцы листа. |
Примеры кода
Скачать
Типовые задачи
Перебор ячеек в диапазоне (вариант 1)
Количество ячеек в диапазоне получено при помощи свойства .Count . Как .Item , так и .Count — это всё атрибуты коллекций, которые широко применяются в объектой модели MS Office и, в частности, Excel.
Перебор ячеек в диапазоне (вариант 3)
Если необходимо перебирать ячейки в порядке A1, A2, A3, B1, . а не A1, B1, C1, A2, . то вы можете это организовать при помощи 2-х циклов For . Обратите внимание, как мы узнали количество столбцов ( parRange.Columns.Count ) и строк ( parRange.Rows.Count ) в диапазоне, а также на использование свойства Cells . Тут Cells относится к листу и никак не связано с диапазоном parRange .
Перебор строк диапазона
В цикле For each. Next перебираем коллекцию Rows объекта parRange . Для каждой строки формируем цвет на основе первых трёх ячеек каждой строки. Поскульку у нас в ячейках формула, присваивающая ячейке случайное число от 1 до 255, то цвета получаются всегда разные. Оператор With позволяет нам сократить код и, к примеру, вместо Line.Cells(2) написать просто .Cells(2) .
Перебор столбцов
Перебираем коллекцию Columns . Тоже используем оператор With . В последней ячейке каждого столбца у нас хранится размер шрифта для всей колонки, который мы и применяем к свойству Line.Font.Size .
Перебор областей диапазона
Как пронумеровать строки в excel по порядку: все рабочие способы
- Выделяем ячейку, в которой будет находиться цифра «1» нумерации. Вводим в строку для формул выражение «=СТРОКА(A1)».Кликаем по кнопке ENTER на клавиатуре.
- Как и в предыдущем случае, копируем с помощью маркера заполнения формулу в нижние ячейки таблицы данного столбца. Только в этот раз выделяем не две первые ячейки, а только одну.
Ранее было сказано, что способы с растягиванием выделения хороши лишь в тех случаях, если нужно пронумеровать немного строк, а для длинных таблиц они не подойдут. Так вот, сейчас мы рассмотрим, как в «Экселе» пронумеровать строки при помощи прогрессии.
[expert_bq id=»1570″]Если для аргумента Reference введен диапазон ссылок на ячейки, функция возвращает номер строки или столбца первой ячейки в предоставленном диапазоне см. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq]
В цикле For each. Next перебираем коллекцию Rows объекта parRange . Для каждой строки формируем цвет на основе первых трёх ячеек каждой строки. Поскульку у нас в ячейках формула, присваивающая ячейке случайное число от 1 до 255, то цвета получаются всегда разные. Оператор With позволяет нам сократить код и, к примеру, вместо Line.Cells(2) написать просто .Cells(2) .
Работа с объектом Range — Макросы и программы VBA — Excel — Каталог статей — Perfect Excel
- Выделяем ячейку, в которой будет стоять единицы и прописываем формулу в специальном поле, как на скриншоте.
- Теперь точно также растягиваем ячейку с формулой на необходимое количество ячеек вниз – нумерация продолжится по порядку.
В настройках программы Excel можно включить или отключить отображение маркера заполнения. По умолчанию этот параметр включён, но при скачивании программы с интернета, программный код может нести некоторые изменения. В официальных сборках маркером заполнения можно пользоваться сразу после установки.