Именованный диапазон Excel vba excel

Обновлено: 21.11.2024

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

Удаление знака равенства

Это не работает, вы должны использовать:

или удалите знак равенства спереди

Изменение размера

Изменение имени

Возможно, что после создания именованного диапазона вы захотите изменить фактическое имя.
Это можно сделать с помощью свойства Name объекта Name.

Вы можете вернуть диапазон ячеек именованного диапазона, используя строку =Sheets("SheetName").Range("NamedRange").Address.
Если вы ссылаетесь на Range("D4").Value в вашем коде VBA, будет безопаснее создать имена для диапазона "D4" и ссылаться на него.
Если строки или столбцы вставляются/удаляются тогда ваш код VBA все равно будет работать.

Создание имен

Создает имена в указанном диапазоне на основе текстовых меток на листе.
Если вы не укажете один из вариантов: Верх, Слева, Низ или Справа, Microsoft Excel угадывает расположение текстовых меток на основе на форме указанного диапазона.
Именованный диапазон можно скрыть после его создания.

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

Скрытые именованные диапазоны

Можно создавать скрытые именованные диапазоны, которые не отображаются в диалоговом окне "Диспетчер имен".
Это может быть полезным способом хранения конкретной информации о листах и ​​книгах, которую пользователь не может видеть.

Этот метод может быть полезен для хранения паролей рабочих листов.

Изменение размера именованных диапазонов

Использование метода оценки

Можно использовать метод Evaluate для получения значения для определенного именованного диапазона.

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

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

Оценка, Hadoop, Excel, мобильные приложения, веб-разработка и многое другое.

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

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

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

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

Обучение VBA (3 курса, более 12 проектов) 3 онлайн-курса | 13 практических проектов | 45+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,7 (10 164 оценки)

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

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

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

Есть два способа использования именованного диапазона в Excel VBA:

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

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

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

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

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

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

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

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

Код:

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

Код:

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

Код:

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

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

Код:

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

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

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

Код:

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

Код:

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

Код:

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

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

Код:

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

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

Код:

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

Что нужно помнить

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

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

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

Когда мы работаем с большим объемом данных, чтобы не ссылаться на конкретную ячейку или диапазоны ячеек, мы обычно создаем именованные диапазоны, и это позволяет нам ссылаться на требуемый диапазон ячеек через именованный диапазон. В VBA для создания диапазона имен у нас есть функция «Добавить имя».

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

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

Например, посмотрите на изображение ниже.

Чтобы получить прибыль в ячейке B4, я применил формулу B2 – B3.

Это обычное дело для всех. Но как насчет того, чтобы создать Имена и применить формулу типа «Продажи» — «Стоимость».

Поместите курсор в ячейку B3 и назовите ее Стоимость.

Теперь в столбце прибыли мы можем ссылаться на эти имена вместо ссылок на ячейки.

Это основное свойство именованных диапазонов.

Как создавать именованные диапазоны с помощью кода VBA?

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

Шаг 1. Определите переменную как «Диапазон».

Код:

Шаг 2. Теперь установите переменную «Rng» для конкретных ячеек, которым вы хотите присвоить имя.

Код:

Шаг 3. Использование свойства Names для доступа к объекту ThisWorkbook.

У нас так много параметров с методом Names.Add. Ниже приведены пояснения.

[Имя]: Имя ничего не значит, но какое имя мы хотели бы дать указанному нами диапазону.

Имя ячейки не должно содержать никаких специальных символов, кроме символа подчеркивания (_), а также пробелов. Он не должен начинаться с числовых значений.

[Относится к]: это не что иное, как диапазон ячеек, на которые мы ссылаемся.

Думаю, этих двух параметров достаточно, чтобы начать процесс.

Шаг 4. В имени аргумента указывается имя, которое вы хотите дать. Я назвал «SalesNumbers».

Код:

Шаг 5. В качестве аргумента введите диапазон ячеек, которые мы хотим создать. В имени переменной «Rng» мы уже назначили диапазон ячеек от A2 до A7, поэтому укажите аргумент как «Rng».

Код:

Хорошо, этот код создаст именованный диапазон для ячеек от A2 до A7.

Теперь на листе я создал несколько чисел от A2 до A7.

В ячейке A8 я хочу получить сумму указанных выше номеров ячеек. Используя именованный диапазон, мы создадим СУММУ этих чисел.

Код:

Если вы запустите этот код вручную или нажав клавишу f5, мы получим сумму именованного диапазона в ячейке A8.

Это основные факты, которые необходимо знать об «Именованных диапазонах».

Например, в приведенном выше примере мы назвали ячейку B2 «Продажи», а ячейку B3 — «Стоимость».

Используя фактическую ссылку на ячейку, мы обращаемся к этим ячейкам следующим образом.

Код:

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

Код:

Таким образом, используя именованные диапазоны, мы можем использовать эти ячейки. Используя эти имена, мы можем рассчитать сумму прибыли в ячейке B4. Для этого имени в ячейке B4 указано значение «Прибыль».

Код:

Это рассчитает сумму прибыли в ячейке с названием «Прибыль».

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

Это руководство по именованному диапазону VBA. Здесь мы обсудим, как создавать и использовать именованные диапазоны VBA для выбора ячейки или диапазона ячеек в Excel, а также практические примеры и загружаемый шаблон. Ниже вы можете найти несколько полезных статей по Excel VBA –

Чтобы создать именованный диапазон с помощью VBA, необходимо использовать свойство «Имена» далее с помощью метода «Добавить». В методе add у вас есть аргументы для определения имени, которое вы хотите присвоить диапазону, и указать адрес диапазона (не забудьте использовать знак доллара с адресом, чтобы заморозить диапазон).

Создайте диапазон имен с помощью VBA

  1. Определите рабочую книгу, в которой вы хотите создать именованный диапазон.
  2. Используйте свойство name, а затем добавьте метод.
  3. Укажите имя в аргументе «Имя».
  4. Ссылка на диапазон с помощью аргумента «ReferTo».

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

VBA для создания именованного диапазона из выделенного

Вы также можете использовать свойство selection для создания именованного диапазона из выбранного. Рассмотрим следующий код.

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

Изменение размера именованного диапазона с помощью VBA (динамический именованный диапазон)

Чтобы изменить размер именованного диапазона, уже существующего на листе, вам нужно использовать свойство resize и указать VBA, сколько строк и столбцов вы хотите расширить из текущего диапазона. Рассмотрим следующий код, который расширяет именованный диапазон «myRange», который изначально имеет ячейку A1 в качестве диапазона, но изменяет ее размер до столбца M и строки 11.

Sub vba_named_range() Dim iRow As Long Dim iColumn As Long iRow = ActiveSheet.Range("A1").End(xlDown).Row iColumn = ActiveSheet.Range("A1").End(xlToRight).Column ActiveSheet .Range("myRange") _ .Resize(iRow, iColumn).Name = "myRange" End Sub

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

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