Named ranges excel что это

Обновлено: 06.07.2024

Знакомство с объектной моделью Excel следует начинать с такого замечательного объекта, как Range . Поскольку любая ячейка - это Range , то без знания, как с этим объектом эффективно взаимодействовать, вам будет затруднительно программировать для Excel. Это очень ладно-скроенный объект. При некоторой сноровке вы найдёте его весьма удобным в эксплуатации.

Что такое объекты?

Мы собираемся изучать объект Range , поэтому пару слов надо сказать, что такое, собственно, " объект ". Всё, что вы наблюдаете в Excel, всё с чем вы работаете - это набор объектов. Например, лист рабочей книги Excel - не что иное, как объект типа WorkSheet . Однотипные объекты объединяют в коллекции себе подобных. Например, листы объединены в коллекцию Sheets . Чтобы не путать друг с другом объекты одного и того же типа, они имеют отличающиеся имена, а также номер индекса в коллекции. Объекты имеют свойства , методы и события .
Свойства - это информация об объекте. Часто эти свойства можно менять, что автоматически влечет изменения внешнего вида объекта или его поведения. Например свойство Visible объекта Worksheet отвечает за видимость листа на экране. Если ему присвоить значение xlSheetHidden (это константа, которая по факту равно нулю), то лист будет скрыт.
Методы - это то, что объект может делать. Например, метод Delete объекта Worksheet удаляет себя из книги. Метод Select делает лист активным.
События - это механизм, при помощи которого вы можете исполнять свой код VBA сразу по факту возникновения того или иного события с вашим объектом. Например, есть возможность выполнять ваш код, как только пользователь сделал текущим определенный лист рабочей книги, либо как только пользователь что-то изменил на этом листе.

Объекты Range

Range это диапазон ячеек. Минимум - одна ячейка, максимум - весь лист, теоретически насчитывающий более 17 миллиардов ячеек (строки 2^20 * столбцы 2^14 = 2^34).
В Excel объявлены глобально и всегда готовы к использованию несколько коллекций, имеющий членами объекты типа Range , либо свойства это же типа. Коллекции глобального объекта Application : Cells , Columns , Rows , а также свойства Range , Selection , ActiveCell , ThisCell .
ActiveCell - активная ячейка текущего листа, ThisCell - если вы написали пользовательскую функцию рабочего листа, то через это свойство вы можете определить какая конкретно ячейка в данный момент пересчитывает вашу функцию. Об остальных перечисленных объектов речь пойдёт ниже.

Работа с отдельными ячейками

Синтаксическая форма Комментарии по использованию
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 Все столбцы листа.

Следует иметь в виду, что свойства Range , Cells , Columns и Rows имеют как объекты типа Worksheet , так и объекты Range . Соответственно в первом случае эти коллекции будут относиться ко всему листу и отсчитываться будут от A1 , а вот в случае конкретного объекта Range эти коллекции будут относиться только к ячейкам этого диапазона и отсчитываться будут от левого верхнего угла диапазона. Например Cells(2,2) указывает на ячейку B2 , а Range("C3:D5").Cells(2,2) укажет на D4 .

Также много путаницы в умы вносит тот факт, что объект Range имеет одноименное свойство range . К примеру, Range("A100:D500").Range("A2") - тут выражение до точки ( Range("A100:D500") ) является объектом Range , выражение после точки ( Range("A2") ) - свойство range упомянутого объекта, но возвращает это свойство тоже объект типа Range . Вот такие пироги. Из этого следует, что такая цепочка может иметь и более двух членов. Практического смысла в этом будет не много, но синтаксически это будут совершенно корректно, например, так: Range("CV100:GR200").Range("J10:T20").Range("A1:B2") укажет на диапазон DE109:DF110 .

Ещё один сюрприз таится в том, что объекты Range имеют свойство по-умолчанию Item( RowIndex [, ColumnIndex] ) . По правилам VBA при ссылке на default свойства имя свойства ( Item ) можно опускать. Кстати говоря, то что вы привыкли видеть в скобках после Cells , есть не что иное, как это дефолтовое свойство Item , а не родные параметры Cells , который их не имеет вовсе. Ну ладно к Cells все привыкли и это никакого отторжения не вызывает, но если вы увидите нечто подобное - Range("C3:D5")(2,2) , то, скорее всего, будете несколько озадачены, а тем временем - это буквально тоже самое, что и у Cells - всё то же дефолтовое свойство Item . Последняя конструкция ссылается на D4 . А вот для Columns и Rows свойство Item может быть только одночленным, например Columns(1) - и к этой форме мы тоже вполне привыкли. Однако конструкции вида Columns(2)(3)(4) могут сильно удивить (столбец 7 будет выделен).

Примеры кода

Типовые задачи

Перебор ячеек в диапазоне (вариант 1)

В данном примере организован цикл For. Next и доступ к ячейкам осуществляется по их индексу. Вместо parRange(i) мы могли бы написать parRange.Item(i) (выше это объяснялось). Обратите внимание, что мы в этом примере успешно применяем, как вариант с parRange(i,c) , так и parRange(i) . То есть, если мы применяем одночленную форму свойства Item , то диапазон перебирается по строкам ( A1 , B1 , C1 , A2 , . ), а если двухчленную, то столбец у нас зафиксирован и каждая итерация цикла - на новой строке. Это очень интересный эффект, его можно применять для вытягивания таблиц по вертикали. Но - продолжим!

Количество ячеек в диапазоне получено при помощи свойства .Count . Как .Item , так и .Count - это всё атрибуты коллекций, которые широко применяются в объектой модели MS Office и, в частности, Excel.

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Элемент управления NamedRange представляет собой диапазон с уникальным именем, событиями и возможностью привязки к данным.

Комментарии

Дополнительные сведения см. в разделе элемент управления NamedRange.

Данный интерфейс реализуется набором средств Visual Studio для Office (среда выполнения). Он не предназначен для реализации в пользовательском коде. Дополнительные сведения см. в разделе Visual Studio Tools for Office Runtime Overview.

Использование

Свойства

Возвращает или задает значение, указывающее на то, используется ли для текста автоматический отступ, когда для выравнивания текста в элементе управления NamedRange установлено равномерное горизонтальное или вертикальное распределение.

Получает ссылку на диапазон для элемента управления NamedRange.

Получает ссылку на диапазон для элемента управления NamedRange на языке пользователя.

Получает значение, указывающее, можно ли изменять элемент управления NamedRange на защищенном листе.

Получает объект Application, представляющий собой создателя элемента управления NamedRange.

Получает коллекцию Areas, в которой хранятся все диапазоны для нескольких выбранных областей.

Возвращает коллекцию Borders, в которой хранятся все границы для элемента управления NamedRange.

Возвращает объект Range, представляющий ячейки в элементе управления NamedRange.

Возвращает объект Characters, представляющий диапазон символов в тексте элемента управления NamedRange.

Получает номер первого столбца в первой области элемента управления NamedRange.

Получает объект Range, представляющий один или несколько столбцов в элементе управления NamedRange.

Возвращает или задает ширину всех столбцов в элементе управления NamedRange.

Получает объект Comment, представляющий комментарий, связанный с ячейкой в верхнем левом углу элемента управления NamedRange.

Получает сведения о количестве ячеек в элементе управления NamedRange.

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

Возвращает 32-разрядное целое число, указывающее приложение, в котором был создан элемент управления NamedRange.

Если элемент управления NamedRange является частью массива, получает значение Range, представляющее весь массив.

Возвращает объект Range, представляющий текущую область.

Возвращает или задает используемый по умолчанию объект DataSourceUpdateMode.

Получает объект Range, представляющий диапазон, содержащий все зависимые от элемента управления NamedRange ячейки.

Получает объект Range, представляющий диапазон, содержащий все ячейки, зависимые непосредственно от элемента управления NamedRange.

Возвращает объект Range, представляющий диапазон, содержащий все объекты, непосредственно предшествующие элементу управления NamedRange.

Получает объект, представляющий параметры отображения для указанного диапазона.

Возвращает объект Range, представляющий ячейку в конце области, которая содержит элемент управления NamedRange.

Возвращает объект Range, представляющий весь столбец (или столбцы), содержащий элемент управления NamedRange.

Возвращает объект Range, представляющий всю строку (или строки), содержащую элемент управления NamedRange.

Возвращает объект Errors, дающий возможность обращаться к параметрам проверки ошибок.

Возвращает объект Font, представляющий шрифт элемента управления NamedRange.

Возвращает коллекцию FormatConditions, представляющую все условные форматы для элемента управления NamedRange.

Возвращает или задает формулу элемента управления NamedRange в нотации стиля A1.

Возвращает или задает формулу массива для элемента управления NamedRange.

Возвращает или задает значение, указывающее, скрывается ли формула в элементе управления NamedRange при использовании защищенного листа.

Возвращает или задает формулу для элемента управления NamedRange с использованием ссылок в стиле A1 на языке пользователя.

Возвращает или задает формулу для объекта в нотации стиля R1C1.

Возвращает или задает формулу для элемента управления NamedRange с использованием нотации в стиле R1C1 на языке пользователя.

Получает значение, указывающее, является ли элемент управления NamedRange частью формулы массива.

Получает значение, указывающее, все ли ячейки в элементе управления NamedRange содержат формулы.

Возвращает высоту элемента управления NamedRange.

Возвращает или задает объект, который указывает, скрываются ли строки или столбцы.

Возвращает или задает горизонтальное выравнивание для элемента управления NamedRange.

Получает коллекцию Hyperlinks, представляющую гиперссылки в элементе управления NamedRange.

Возвращает или задает для элемента управления NamedRange идентифицирующую метку при сохранении страницы в виде веб-страницы.

Возвращает или задает уровень отступа для элемента управления NamedRange.

Получает объект Range, представляющий базовый собственный объект NamedRange.

Возвращает объект Interior, представляющий внутреннее заполнение элемента управления NamedRange.

Получает объект Range, представляющий диапазон со смещением для элемента управления NamedRange.

Получает расстояние от левого края столбца A до левого края элемента управления NamedRange.

Возвращает количество строк заголовка для элемента управления NamedRange.

Возвращает ListObject для элемента управления NamedRange.

Получает константу, описывающую часть отчета PivotTable, которая содержит верхний левый угол элемента управления NamedRange.

Возвращает или задает значение, указывающее, заблокирован ли элемент управления NamedRange.

Получает имя многомерного выражения для указанного объекта NamedRange.

Получает объект Range, представляющий объединенный диапазон, который содержит элемент управления NamedRange.

Возвращает или задает значение, указывающее, содержит ли элемент управления NamedRange объединенные ячейки.

Возвращает или задает объект Name для элемента управления NamedRange.

Возвращает объект Range, представляющий следующую ячейку.

Возвращает или задает код формата для элемента управления NamedRange.

Возвращает или задает код формата для элемента управления NamedRange на языке пользователя.

Возвращает объект Range, являющийся смещением от элемента управления NamedRange.

Возвращает или задает ориентацию текста.

Возвращает или задает текущий уровень структуры для элемента управления NamedRange.

Получает или задает расположение разрыва страницы.

Возвращает родительский объект для элемента управления NamedRange.

Получает объект Phonetic, который содержит информацию об определенной фонетической текстовой строке в элементе управления NamedRange.

Возвращает коллекцию Phonetics элемента управления NamedRange.

Возвращает объект PivotCell, представляющий ячейку в отчете сводной таблицы.

Возвращает объект PivotField, представляющий поле сводной таблицы, содержащее верхний левый угол элемента управления NamedRange.

Возвращает объект PivotItem, представляющий элемент сводной таблицы, содержащий верхний левый угол элемента управления NamedRange.

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

Возвращает объект Range, представляющий все влияющие ячейки для элемента управления NamedRange.

Получает символ префикса для элемента управления NamedRange.

Возвращает объект Range, представляющий предыдущую ячейку.

Возвращает объект QueryTable, представляющий таблицу запроса, которая пересекает элемент управления NamedRange.

Возвращает или задает порядок чтения для элемента управления NamedRange.

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

Возвращает или задает формулу, на которую ссылается элемент управления NamedRange, с использованием нотации стиля A1 на языке пользователя.

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

Возвращает или задает формулу, на которую ссылается элемент управления NamedRange, с использованием нотации стиля R1C1 на языке пользователя.

Получает объект Range, на который ссылается элемент управления NamedRange.

Возвращает Range измененного размера, на основании элемента управления NamedRange.

Получает номер первой строки в первой области элемента управления NamedRange.

Возвращает или задает измеряемую в точках высоту всех строк в элементе управления NamedRange.

Получает объект Range, представляющий одну или несколько строк в элементе управления NamedRange.

Возвращает действия, которые могут выполняться на сервере Microsoft Office SharePoint для объекта NamedRange.

Получает или задает объект, указывающий, развернута ли структура элемента управления NamedRange (так что стали видны подробные данные столбца или строки).

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

Получает объект, представляющий существующую группу спарклайнов из указанного диапазона.

Возвращает или задает объект Style, который представляет стиль элемента управления NamedRange.

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

Получает или задает объект, который содержит данные об элементе управления Tag.

Возвращает текст для элемента управления NamedRange.

Получает расстояние в пунктах между верхним краем строки 1 (один) и верхним краем элемента управления NamedRange.

Возвращает или задает значение, указывающее, равна ли высота строки элемента управления NamedRange стандартной высоте листа.

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

Возвращает объект Validation, представляющий проверку данных для элемента управления NamedRange.

Получает или задает значение элемента управления NamedRange.

Получает или задает значение элемента управления NamedRange.

Возвращает или задает вертикальное выравнивание элемента управления NamedRange.

Возвращает ширину элемента управления NamedRange в пунктах.

Возвращает объект Worksheet, представляющий лист, содержащий элемент управления NamedRange.

Возвращает или задает значение, указывающее, выполняет ли Microsoft Office Excel в элементе управления NamedRange перенос текста по словам.

Возвращает объект XPath, представляющий XPath элемента, сопоставленного с элементом управления NamedRange.

Методы

Активизирует элемент управления NamedRange, состоящий из одной ячейки.

Добавляет комментарий к элементу управления NamedRange.

Отфильтровывает или копирует данные из списка на основании диапазона условий.

Выполняет операцию обратной записи всех отредактированных ячеек в именованном диапазоне, основанном на источнике данных OLAP.

Применяет имена к ячейкам в элементе управления NamedRange.

Применяет стили структуризации к элементу управленияNamedRange.

Возвращает из списка соответствие автозаполнения.

Автоматически заполняет ячейки в элементе управления NamedRange.

Фильтрует список с использованием автофильтра.

Изменяет ширину столбцов или высоту строк в элементе управления NamedRange для обеспечения оптимального размера.

Автоматически создает структуру для элемента управления NamedRange.

Добавляет границу элементу управления NamedRange и задает свойства Color, LineStyle и Weight для новой границы.

Вычисляет значения ячеек в элементе управления NamedRange.

Вычисляет определенный диапазон ячеек.

Проверяет правописание текста в элементе управления NamedRange.

Удаляет элемент управления NamedRange целиком.

Удаляет комментарии во всех ячейках элемента управления NamedRange.

Удаляет формулы из элемента управления NamedRange.

Удаляет форматирование элемента управления NamedRange.

Удаляет все гиперссылки из указанного диапазона.

Удаляет примечания из всех ячеек элемента управления NamedRange.

Удаляет структуру для элемента управления NamedRange.

Возвращает объект Range, который представляет все ячейки, содержимое которых отличается от ячейки сравнения в каждом столбце.

Консолидирует данные из нескольких диапазонов на нескольких листах в элементе управления NamedRange.

Копирует содержимое элемента управления NamedRange в указанный диапазон или в буфер обмена.

Копирует в лист содержимое набора записей ADO или DAO, начиная с верхнего левого угла элемента управления NamedRange.

Копирует элемент управления NamedRange в буфер обмена как рисунок.

Создает имена в элементе управления NamedRange на основе текстовых меток в листе.

Вырезает содержимое элемента управления NamedRange в буфер обмена или вставляет его в указанное назначение.

Создает ряд данных в элементе управления NamedRange.

Удаляет динамически созданный элемент управления NamedRange, а затем удаляет его из коллекции ControlCollection.

Отображает диалоговое окно, определенное таблицей определения диалоговых окон на листе макросов Microsoft Office Excel 4.0.

Назначает элемент управления NamedRange, который должен быть вычислен повторно при выполнении следующего пересчета.

Отменяет все изменения в отредактированных ячейках в диапазоне.

Выполняет экспорт в файл указанного формата.

Заполняет от верхней ячейки (или ячеек) в элементе управления NamedRange до нижней части элемента управления NamedRange.

Заполняет налево от самой правой ячейки (или ячеек) в элементе управления NamedRange.

Заполняет направо от самой левой ячейки (или ячеек) в элементе управления NamedRange.

Заполняет вверх от нижней ячейки (или ячеек) в элементе управления NamedRange до верхней части диапазона.

Находит определенные данные в элементе управления NamedRange и возвращает объект Range, который представляет первую ячейку, где найдены эти данные.

Запускает Мастер функций для верхней левой ячейки элемента управления NamedRange.

Получает IEnumerator, используемый для итерации ячеек в элементе управления NamedRange.

Если элемент управления NamedRange представляет одну ячейку в диапазоне данных поля сводной таблицы, метод Group(Object, Object, Object, Object) выполняет числовое или основанное на дате группирование в этом поле.

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

Добавляет отступ для элемента управления NamedRange.

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

Вставляет список всех отображаемых имен в лист, начиная с первой ячейки в элементе управления NamedRange.

Создает объединенную ячейку из элемента управления NamedRange.

Переводит стрелку трассировки для элемента управления NamedRange к предшествующим, зависимым или вызывающим ошибку ячейкам.

Возвращает или задает примечание ячейки, связанное с ячейкой в левом верхнем углу элемента управления NamedRange.

Проводит синтаксический анализ диапазона данных и разбивает его на несколько ячеек.

Вставляет содержимое объекта Range из буфера обмена в элемент управления NamedRange.

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

Удаляет повторяющиеся значения из диапазона значений.

Удаляет промежуточные итоги из элемента управления NamedRange.

Заменяет указанные символы в элементе управления NamedRange на новую строку.

Возвращает объект Range, который представляет все ячейки, содержимое которых отличается от содержимого ячейки сравнения в каждой строке.

Выбирает элемент управления NamedRange.

Создает объекты Phonetic для всех ячеек в элементе управления NamedRange.

Выполняет прокрутку содержимого активного окна для перемещения элемента управления NamedRange в представление.

Рисует стрелки трассировки для непосредственно зависимых ячеек элемента управления NamedRange.

Рисует стрелки трассировки от дерева влияющих ячеек к ячейке, являющейся источником ошибки, и возвращает объект Range, содержащий эту ячейку.

Рисует стрелки трассировки к непосредственно влияющим ячейкам элемента управления NamedRange.

Сортирует данные в элементе управления NamedRange.

Использует методы сортировки, предназначенные для восточноазиатских языков, для сортировки элемента управления NamedRange. Например, для японского языка сортировка выполняется в порядке японской азбуки. Дополнительные сведения см. в списке параметров.

Определяет порядок произношения ячеек элемента управления NamedRange: по строкам или по столбцам.

Возвращает объект Range, представляющий все ячейки, соответствующие указанным типу и значению.

Создает промежуточные итоги для элемента управления NamedRange.

Создает таблицу данных, основанную на входных значениях и формулах, определенных на листе.

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

Повышает роль элемента управления NamedRange в структуре (т. е. уменьшает его уровень структуры).

Разделяет объединенную область на отдельные ячейки.

События

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

Возникает при щелчке правой кнопкой мыши элемента управления NamedRange перед выполнением щелчка правой кнопкой мыши по умолчанию.

Возникает, когда в элемент управления NamedRange вносятся какие-либо изменения.

Возникает при перемещении выделения из элемента управления NamedRange в область за пределами элемента управления NamedRange.


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

Давайте начнем с того, как мы можем назвать диапазон в Excel, а затем использовать его в VBA. Чтобы назвать группу диапазонов в Excel, мы просто выбираем диапазоны следующим образом:


Теперь есть поле, где оно упоминается как A1, мы нажимаем на него и даем ему имя.


Коробка называется коробкой имени, и мы используем ее, чтобы дать имя нашему диапазону. Для текущего примера я дал его в качестве именованного диапазона. Теперь, когда мы дали имя диапазона, как мы используем его в VBA. Предположим, что мы должны были изменить цвет интерьера вышеупомянутого диапазона ранее в VBA, что мы сделали в VBA, так как мы ссылались на диапазон следующим образом:

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

NEW - это имя диапазона, которое мы дали для выбора ячейки A1: B5. Вот как мы используем диапазоны имен в VBA, как только мы назвали их.

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

Чтобы присвоить VBA диапазон в рабочей таблице, мы используем следующий код:

Как использовать именованный диапазон в Excel VBA?

Существует два метода использования именованного диапазона в Excel VBA:

  1. Во-первых, мы называем диапазон в Excel, а затем используем его в VBA.
  2. Второй метод заключается в создании именованного диапазона в самом VBA и использовании его свойств.

Ниже приведены различные примеры использования именованного диапазона в Excel:

Вы можете скачать этот шаблон Excel с именованным диапазоном VBA здесь - Шаблон Excel с именованным диапазоном VBA

Пример № 1

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

Шаг 1: Выберите диапазон, который мы хотим назвать первым, следующим образом:


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


Шаг 3. Теперь давайте перейдем к VBA, перейдите на вкладку « Разработчик » и нажмите Visual Basic, чтобы войти в VBA.


Шаг 4: Как только мы попадаем в VBA, нам нужно вставить модуль, чтобы мы могли писать в нем код. Сделайте следующее


Шаг 5: Теперь давайте начнем писать код, для этого нам нужно сначала назвать макрос следующим образом:

Код:


Шаг 6: Напишите следующий код, чтобы сначала активировать лист, чтобы использовать диапазон имен.

Код:


Шаг 7: Теперь давайте используем наш диапазон имен следующим образом:

Код:


Шаг 8: Как только мы запустим приведенный выше код, мы увидим, что каждая ячейка в нашем диапазоне имен имеет такое же значение, как показано ниже:

Шаг 9: Давайте также проверим, можем ли мы изменить свойства ячейки. Давайте изменим цвет диапазона, используя диапазон имен следующим образом:

Код:


Шаг 10: Запустите приведенный выше код, нажав F5 или кнопку Run, и увидите следующий результат,


Пример № 2

Сначала мы создадим именованный диапазон с помощью VBA и используем свойства диапазона имен в самом VBA. Выполните следующие шаги:

Шаг 1: Теперь давайте начнем писать код, для этого нам нужно сначала назвать макрос следующим образом:

Код:


Шаг 2: Объявите переменную, которая будет хранить имя диапазона имен следующим образом,

Код:


Шаг 3: Теперь давайте установим диапазон имен следующим образом, в этом примере все, что мы выбрали в качестве диапазона, будет нашим именованным диапазоном,

Код:


Это то, что я выбрал для именованного диапазона ячеек диапазона A1: C5 на листе 2,


Шаг 4: Теперь давайте назовем диапазон следующим кодом:

Код:


Шаг 5: Запустите приведенный выше код, мы увидим, что мы создали диапазон имен на листе 2 с именем namedrangefromselection,


Шаг 6: Теперь давайте воспользуемся этим именем в диапазоне, как мы использовали в предыдущем примере следующим образом:

Код:


Шаг 7: Запустите приведенный выше код с кнопки F5 и увидите результат следующим образом:

То, что нужно запомнить

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

Рекомендуемые статьи

Это руководство по VBA Named Range. Здесь мы обсудим, как использовать Named Range в Excel VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

Диапазоны легче идентифицировать по имени, чем с помощью нотации A1. Чтобы присвоить имя выбранному диапазону, щелкните поле имени с левой стороны строки формул, введите имя и нажмите клавишу ВВОД.

Примечание. Существует два типа именованных диапазонов: именованный диапазон книги и именованный диапазон определенного листа.

Именованный диапазон книги

Именованный диапазон книги относится к определенному диапазону в любом месте книги (применяется глобально).

Как создать именованный диапазон книги:

Как указано выше, обычно он создается путем ввода имени в поле "Имя" с левой стороны строки формул. Обратите внимание, что имя не может содержать пробелов.

Именованный диапазон определенного листа

Именованный диапазон определенного листа относится к диапазону конкретного листа и не является глобальным для всех листов в книге. Сослаться на такой именованный диапазон с этого же листа можно просто с помощью имени, но из другого листа потребуется использовать имя листа с добавлением "!" и имени диапазона (пример: диапазон "Имя" "= Лист1!Имя").

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

Как создать именованный диапазон определенного листа:

Пример именованного диапазона определенного листа: выделенный диапазон A1:A10 для присвоения имени.

Выбранное имя диапазона — "Имя". В пределах одного листа ссылайтесь на именованный диапазон, просто введя в ячейку "=Имя". Из другого листа ссылайтесь на диапазон определенного листа, указав в ячейке имя листа: "= Лист1!Имя".

Ссылка на именованный диапазон

В следующем примере выполняется ссылка на диапазон с именем MyRange в книге с именем MyBook.xls.

В следующем примере выполняется ссылка на диапазон определенного листа с именем Sheet1!Sales в книге с именем Report.xls.

Чтобы выбрать именованный диапазон, используйте метод GoTo, который активирует книгу и лист, а затем выбирает диапазон.

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

В этом примере в качестве формулы для проверки данных используется именованный диапазон. В этом примере данные проверки должны быть на листе 2 в диапазоне A2:A100. Они используются для проверки данных, введенных на листе 1 в диапазоне D2:D10.

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

В приведенном ниже примере выполняется циклический переход по каждой ячейке именованного диапазона с помощью цикла For Each. Next. Если значение любой ячейки в диапазоне превышает значение Limit , цвет ячейки изменяется на желтый.

Об участнике

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Читайте также: