Excel vba диспетчер имени

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше

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

Чтобы открыть диалоговое окно Диспетчер имен, на вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.

Диалоговое окно "Диспетчер имен"

В диалоговом окне Диспетчер имен отображаются следующие сведения о каждом имени в списке.

Имя столбца

Описание

Имя

Одно из следующих значений:

  • определенное имя, которое обозначается значком определенного имени; Значок определенного имени

  • имя таблицы, которое обозначается значком имени таблицы. Значок имени таблицы

    Примечание: Имя таблицы — это имя таблицы Excel, которая представляет собой коллекцию данных об определенной теме, хранящихся в записях (строках) и полях (столбцах). Excel создает имя таблицы Excel таблицы table1, Table2 и т. д. при каждой вставке Excel таблицы. Вы можете изменить имя таблицы, чтобы сделать ее более понятной. Дополнительные сведения о Excel таблицах см. в статье «Использование структурированных ссылок с Excel таблицами».

Значение

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

  • «это моя строковая константа»

  • 3,1459

  • {2003;12,2002;23,;2001,18}

  • #ССЫЛКА!

  • {…}

Диапазон

Текущая ссылка для имени. Вот типичные примеры.

  • =Лист1!$A$3

  • =8,3

  • =HR!$A$1:$Z$345

  • =СУММ(Лист1!A1,Лист2!B2)

Область

  • имя листа, если область действия — локальный уровень листа;

  • «Книга», если областью является глобальный уровень книги. Этот вариант применяется по умолчанию.

Примечание

Дополнительные сведения об имени длиной до 255-ти знаков. Вот типичные примеры.

  • Срок действия этого значения истекает 2 мая 2007 г.

  • Не удалять! Критическое имя!

  • Основано на числах экзамена на сертификацию ISO.

Объект ссылки:

Ссылка на выбранное имя.

Диапазон имени можно быстро изменить, изменив сведения в поле «Ссылки «. После внесения изменений можно нажать кнопку » Кнопка ВВОД сохранить изменения», или Кнопка «Отмена» отменить изменения.

Примечания: 

  • При изменении содержимого ячейки нельзя использовать диалоговое окно диспетчера имен.

  • В диалоговом окне диспетчера имен не отображаются имена, определенные в Visual Basic для приложений (VBA) или скрытые имена (свойство Visible имени имеет значение False).

  1. На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.

  2. В диалоговом окне «Новое имя» введите имя, которое вы хотите использовать для ссылки.

    Примечание: Длина имени не может превышать 255 знаков.

  3. Область автоматически по умолчанию используется для книги. Чтобы изменить область имени, в раскрывающемся списке «Область» выберите имя листа.

  4. Также в поле Примечание можно ввести описание длиной до 255 знаков.

  5. В поле Диапазон выполните одно из указанных ниже действий.

    • Нажмите кнопку «Свернуть Изображение кнопки» (при этом диалоговое окно временно сжимается), выделите ячейки на листе и нажмите кнопку » Развернуть диалоговое окно» Изображение кнопки.

    • Чтобы указать константу, введите = (знак равенства), а затем значение константы.

    • Чтобы указать формулу, введите =, а затем формулу.
       

      Советы: 

      • Будьте внимательны при использовании абсолютных или относительных ссылок в формуле. Если создать ссылку, щелкнув ячейку, на которую вы хотите ссылаться, Excel создать абсолютную ссылку, например «Sheet1!$B$1». Если ввести ссылку, например «B1», это относительная ссылка. Если при выборе имени активной ячейкой является A1, то ссылка на «B1» действительно означает «ячейка в следующем столбце». Если вы используете определенное имя в формуле в ячейке, ссылка будет на ячейку в следующем столбце относительно места ввода формулы. Например, если ввести формулу в C10, ссылка будет иметь значение D10, а не B1.

      • Дополнительные сведения: переключение между относительным, абсолютным и смешанным ссылками

  6. Чтобы закончить и вернуться на лист, нажмите кнопку ОК.

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

При изменении определенного имени или имени таблицы все его использование в книге также изменяется.

  1. На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.

  2. В диалоговом окне диспетчера имен дважды щелкните имя, которое вы хотите изменить, или выберите имя, которое вы хотите изменить, а затем нажмите кнопку «Изменить».

  3. В диалоговом окне Изменение имени введите новое имя для ссылки в поле Имя.

  4. Измените ссылку в поле Диапазон и нажмите кнопку ОК.

  5. В диалоговом окне Диспетчер имен в поле Диапазон измените ячейку, формулу или константу, представленную этим именем.

  1. На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.

  2. В диалоговом окне Диспетчер имен щелкните имя, которое нужно изменить.

  3. Выделите одно или несколько имен одним из способов, указанных ниже.

    • Для выделения имени щелкните его.

    • Чтобы выбрать несколько имен в непрерывной группе, щелкните и перетащите их, а затем нажмите клавишу SHIFT и нажмите кнопку мыши для каждого имени в группе.

    • Чтобы выбрать несколько имен в несмежной группе, нажмите клавишу CTRL и нажмите кнопку мыши для каждого имени в группе.

  4. Нажмите кнопку Удалить.

  5. Нажмите кнопку ОК, чтобы подтвердить удаление.

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

Можно выполнить фильтрацию из следующих параметров:

Параметр

Действие

Имена на листе

Отобразить только локальные имена листа.

Имена в книге

Отобразить только глобальные имена в книге.

Имена с ошибками

Отображение только имен со значениями, содержащими ошибки (например, #REF, #VALUE или #NAME).

Имена без ошибок

Отобразить только те имена, в значениях которых нет ошибок.

Определенные имена

Отобразить только те имена, которые определены пользователем или Excel, такое как имя области печати.

Имена таблиц

Отобразить только имена таблиц.

  • Чтобы отсортировать список имен в порядке возрастания или убывания, щелкните заголовок столбца.

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Почему в Excel появляется диалоговое окно «Конфликт имен»?

Создание именованного диапазона в Excel

Вставка именованного диапазона в формулу в Excel

Определение и использование имен в формулах

Нужна дополнительная помощь?

Вступление

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

Определить именованный диапазон

Использование именованных диапазонов позволяет описать значение содержимого ячейки (я) и использовать это определенное имя вместо фактического адреса ячейки.

Например, формулу =A5*B5 можно заменить на =Width*Height чтобы упростить чтение и понимание формулы.

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

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


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

Создайте новый именованный диапазон под названием «MyRange», назначенный ячейке A1

ThisWorkbook.Names.Add Name:="MyRange", _
    RefersTo:=Worksheets("Sheet1").Range("A1")

Удалить определенный именованный диапазон по имени

ThisWorkbook.Names("MyRange").Delete

Доступ к именованному диапазону по имени

Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)

Доступ к названию диапазона с ярлыком

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

Call MsgBox("Width = " & [MyRange])

Примечание. Свойством по умолчанию для диапазона является его значение, поэтому [MyRange] совпадает с [MyRange].Value

Вы также можете вызвать методы в диапазоне. Следующий выбирает MyRange :

[MyRange].Select

Примечание. Одно предостережение состоит в том, что нотация ярлыка не работает со словами, которые используются в другом месте библиотеки VBA. Например, диапазон с именем Width не будет доступен как [Width] но будет работать, как ожидалось, при доступе через ThisWorkbook.Worksheets("Sheet1").Range("Width")

Управление именованным диапазоном (диапазонами) с помощью диспетчера имен

Вкладка «Формулы»> «Определенная группа имен»> «Диспетчер имен»

Именованный менеджер позволяет:

  1. Создайте или измените имя
  2. Создать или изменить ссылку на ячейку
  3. Создать или изменить область действия
  4. Удалить существующий именованный диапазон

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


Named Manager предоставляет полезный быстрый поиск неработающих ссылок.

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

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

Примерный лист

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


Код

Sub Example()
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Sheet1")
    
    Dim units As Range
    Set units = ThisWorkbook.Names("Units").RefersToRange
    
    Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
    Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub

Результат

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

Содержание

  1. Расширение диспетчера имен Excel
  2. Работа с диспетчером имен
  3. Использование фильтра
  4. Изменение видимости
  5. Удаление стилей
  6. Объект Names (Excel)
  7. Замечания
  8. Пример
  9. Методы
  10. Свойства
  11. См. также
  12. Поддержка и обратная связь
  13. Names object (Excel)
  14. Remarks
  15. Example
  16. Methods
  17. Properties
  18. See also
  19. Support and feedback
  20. Использование Диспетчера имен в Excel
  21. excel-vba Именованные диапазоны
  22. Вступление
  23. Определить именованный диапазон
  24. Использование именных диапазонов в VBA
  25. Управление именованным диапазоном (диапазонами) с помощью диспетчера имен

Расширение диспетчера имен Excel

Работа с диспетчером имен

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

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

Для каждого именованного диапазона выводится его название, значение, ссылка на диапазон, видимость (скрытый или нет) и примечание при наличие.

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

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

Изменение видимости

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

Команда работает как переключатель видимый/скрытый

Удаление стилей

С помощью диспетчера можно удалить все имена из книги, в том числе и скрытые.

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

Источник

Объект Names (Excel)

Коллекция всех объектов Name в приложении или книге.

Замечания

Каждый объект Name представляет определенное имя для диапазона ячеек. Имена могут быть встроенными именами, например базами данных, Print_Area и Auto_Open, или пользовательскими именами.

Аргумент RefersTo должен быть указан в нотации в стиле A1, включая знаки доллара ($) при необходимости. Например, если ячейка A10 выбрана на листе Лист1 и вы определяете имя с помощью аргумента RefersTo «=лист1! A1:B1», новое имя фактически относится к ячейкам A10:B10 (так как вы указали относительную ссылку). Чтобы указать абсолютную ссылку, используйте «=лист1!$A$1:$B$1».

Пример

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

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

Используйте name (index), где index — это номер индекса имени или определенное имя, чтобы вернуть один объект Name . В следующем примере имя mySortRange удаляется из активной книги.

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

Методы

Свойства

См. также

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

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

Источник

Names object (Excel)

A collection of all the Name objects in the application or workbook.

Each Name object represents a defined name for a range of cells. Names can be either built-in names—such as Database, Print_Area, and Auto_Open—or custom names.

The RefersTo argument must be specified in A1-style notation, including dollar signs ($) where appropriate. For example, if cell A10 is selected on Sheet1 and you define a name by using the RefersTo argument «=sheet1!A1:B1», the new name actually refers to cells A10:B10 (because you specified a relative reference). To specify an absolute reference, use «=sheet1!$A$1:$B$1».

Example

Use the Names property of the Workbook object to return the Names collection. The following example creates a list of all the names in the active workbook, plus the addresses that they refer to.

Use the Add method to create a name and add it to the collection. The following example creates a new name that refers to cells A1:C20 on the worksheet named Sheet1.

Use Names (index), where index is the name index number or defined name, to return a single Name object. The following example deletes the name mySortRange from the active workbook.

This example uses a named range as the formula for data validation. This example requires the validation data to be on Sheet 2 in the range A2:A100. This validation data is used to validate data entered on Sheet1 in the range D2:D10.

Methods

Properties

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Использование Диспетчера имен в Excel

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

Чтобы открыть диалоговое окно Диспетчер имен, на вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.

В диалоговом окне Диспетчер имен отображаются следующие сведения о каждом имени в списке.

Одно из следующих значений:

определенное имя, которое обозначается значком определенного имени;

имя таблицы, которое обозначается значком имени таблицы.

Примечание: Имя таблицы — это имя таблицы Excel, которая представляет собой коллекцию данных об определенной теме, хранящихся в записях (строках) и полях (столбцах). Excel создает имя таблицы Excel таблицы table1, Table2 и т. д. при каждой вставке Excel таблицы. Вы можете изменить имя таблицы, чтобы сделать ее более понятной. Дополнительные сведения о Excel таблицах см. в статье «Использование структурированных ссылок с Excel таблицами».

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

«это моя строковая константа»

Текущая ссылка для имени. Вот типичные примеры.

имя листа, если область действия — локальный уровень листа;

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

Дополнительные сведения об имени длиной до 255-ти знаков. Вот типичные примеры.

Срок действия этого значения истекает 2 мая 2007 г.

Не удалять! Критическое имя!

Основано на числах экзамена на сертификацию ISO.

Ссылка на выбранное имя.

Диапазон имени можно быстро изменить, изменив сведения в поле «Ссылки «. После внесения изменений можно нажать кнопку » сохранить изменения», или отменить изменения.

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

В диалоговом окне диспетчера имен не отображаются имена, определенные в Visual Basic для приложений (VBA) или скрытые имена (свойство Visible имени имеет значение False).

На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.

В диалоговом окне «Новое имя» введите имя, которое вы хотите использовать для ссылки.

Примечание: Длина имени не может превышать 255 знаков.

Область автоматически по умолчанию используется для книги. Чтобы изменить область имени, в раскрывающемся списке «Область» выберите имя листа.

Также в поле Примечание можно ввести описание длиной до 255 знаков.

В поле Диапазон выполните одно из указанных ниже действий.

Нажмите кнопку «Свернуть » (при этом диалоговое окно временно сжимается), выделите ячейки на листе и нажмите кнопку » Развернуть диалоговое окно» .

Чтобы указать константу, введите = (знак равенства), а затем значение константы.

Чтобы указать формулу, введите =, а затем формулу.

Будьте внимательны при использовании абсолютных или относительных ссылок в формуле. Если создать ссылку, щелкнув ячейку, на которую вы хотите ссылаться, Excel создать абсолютную ссылку, например «Sheet1!$B$1». Если ввести ссылку, например «B1», это относительная ссылка. Если при выборе имени активной ячейкой является A1, то ссылка на «B1» действительно означает «ячейка в следующем столбце». Если вы используете определенное имя в формуле в ячейке, ссылка будет на ячейку в следующем столбце относительно места ввода формулы. Например, если ввести формулу в C10, ссылка будет иметь значение D10, а не B1.

Чтобы закончить и вернуться на лист, нажмите кнопку ОК.

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

Источник

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

Вступление

Определить именованный диапазон

Использование именованных диапазонов позволяет описать значение содержимого ячейки (я) и использовать это определенное имя вместо фактического адреса ячейки.

Например, формулу =A5*B5 можно заменить на =Width*Height чтобы упростить чтение и понимание формулы.

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

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

Использование именных диапазонов в VBA

Создайте новый именованный диапазон под названием «MyRange», назначенный ячейке A1

Удалить определенный именованный диапазон по имени

Доступ к именованному диапазону по имени

Доступ к названию диапазона с ярлыком

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

Примечание. Свойством по умолчанию для диапазона является его значение, поэтому [MyRange] совпадает с [MyRange].Value

Вы также можете вызвать методы в диапазоне. Следующий выбирает MyRange :

Примечание. Одно предостережение состоит в том, что нотация ярлыка не работает со словами, которые используются в другом месте библиотеки VBA. Например, диапазон с именем Width не будет доступен как [Width] но будет работать, как ожидалось, при доступе через ThisWorkbook.Worksheets(«Sheet1»).Range(«Width»)

Управление именованным диапазоном (диапазонами) с помощью диспетчера имен

Вкладка «Формулы»> «Определенная группа имен»> «Диспетчер имен»

Именованный менеджер позволяет:

  1. Создайте или измените имя
  2. Создать или изменить ссылку на ячейку
  3. Создать или изменить область действия
  4. Удалить существующий именованный диапазон

Named Manager предоставляет полезный быстрый поиск неработающих ссылок.

Источник

 

desmake

Пользователь

Сообщений: 4
Регистрация: 27.05.2013

Доброго времени суток, подскажите как можно загрузить имена в диспетчер имен??? т.к. список достаточно большой, поэтому вручную достаточно сложно!

 

DEAD MAN

Пользователь

Сообщений: 145
Регистрация: 24.12.2012

#2

04.06.2013 16:27:15

Составляете таблице со списком имен и ссылок (незабываем о типе ссылок и именах листов), например:
ИмяСсылка
Люди’=’Сотрудники отделов!’$A$1:$D$10

Далее ALT+F11, InsertModule, открываем модуль, вставляем код:

Код
Sub NamesAdd()
    Dim i As String
    Dim Sh As Object
    
    Set Sh = ActiveSheet
    
    'Цикл обхода списка для создания имен. Начинает обходм со второй строки
    For i = 2 To Sh.Cells(Rows.Count, 1).End(xlUp).Row
        'Имя берется из столбца "А", а ссылка из столбца "В"
        ThisWorkbook.Names.Add Sh.Cells(i, 1).Value, RefersTo:=Sh.Cells(i, 2).Value
    Next i
    
End Sub

Находясь на листе со списком имен нажимаем ALT+F8 и Выполнить

Изменено: DEAD MAN04.06.2013 16:27:53

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

 

desmake

Пользователь

Сообщений: 4
Регистрация: 27.05.2013

Уважаемый  DEAD MAN, а можно для чайника на примере, как это выглядит в живом файле?

 

DEAD MAN

Пользователь

Сообщений: 145
Регистрация: 24.12.2012

На работе заблокирована возможность выкладывать файлы, смогу выложить, когда буду дома.

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

 

desmake

Пользователь

Сообщений: 4
Регистрация: 27.05.2013

 

WhiteCanine

Пользователь

Сообщений: 10
Регистрация: 04.06.2013

#6

04.06.2013 17:25:15

Цитата
DEAD MAN пишет:
(незабываем о типе ссылок и именах листов)

А что имеется ввиду?
У меня макрос выдает ошибку, и обозначает і

Прикрепленные файлы

  • Книга1 (1).xls (33 КБ)

 

DEAD MAN

Пользователь

Сообщений: 145
Регистрация: 24.12.2012

#7

04.06.2013 18:08:15

Да, там должно быть:

Код
Dim i as Long

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

 

WhiteCanine

Пользователь

Сообщений: 10
Регистрация: 04.06.2013

#8

04.06.2013 18:12:29

выдаетошибку в этой строке

Код
ThisWorkbook.Names.Add Sh.Cells(i, 1).Value, RefersTo:=Sh.Cells(i, 2).Value
 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Посмотрите на стиль ссылок. Если столбцы буквами — то и диапазон для имени должен быть вида A1:B10. Если цифрами: R1C1:R10C2.
Имена не должны повторяться(хотя диапазоны для них вполне даже могут).
Ну и думаю не надо пояснять, что ссылки должны быть реальными(т.е. упоминаемые листы должны существовать). Для имен листов, содержащих пробелы, необходимы апострофы (1 сообщение от DEAD MAN:  ‘Сотрудники отделов!’$A$1:$D$10).

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

desmake

Пользователь

Сообщений: 4
Регистрация: 27.05.2013

Огромнейшее спасибо, все работает!!! :)

 

WhiteCanine

Пользователь

Сообщений: 10
Регистрация: 04.06.2013

#11

05.06.2013 12:03:56

desmake, выложи что получилось, а то у меня никак не хочет.

Получилось! Нужно, что бы вторая ячейка не была пустой

Изменено: WhiteCanine05.06.2013 12:16:13


November 15, 2015/



Chris Newman

Blog Post Banner (hdr).png

What Is A Named Range?

Creating a named range allows you to refer to a cell or group of cells with a custom name instead of the usual column/row reference. The HUGE benefit to using Named Ranges is it adds the ability to describe the data inside your cells. Let’s look at a quick example:

Can you tell if shipping costs are charged with the product price?

  1. = (B7 + B5 * C4) * (1 + A3)

  2. =(ShippingCharge + ProductPrice * Quantity) * (1 + TaxRate)

Hopefully, you can clearly see option number TWO gives you immediate insight to whether the cost of the products includes shipping costs. This allows the user to easily understand how the formula is calculating without having to waste time searching through cells to figure out what is what.

How Do I Use Named Ranges?

As a financial analyst, I play around with a bunch of rates. Examples could be anything from a tax rate to an estimated inflation rate. I use named ranges to organize my variables that either are changed infrequently (ie Month or Year) or something that will be static for a good amount of time (ie inflation rate). Here are a list of common names I use on a regular basis:

  • ReportDate

  • Year

  • Month

  • FcstID

  • TaxRate

  • RawData

Creating Unique Names On The Fly

It is super easy to create a Named Range. All you have to do is highlight the cell(s) you want to reference and give it a name in the Name Box. You name cannot have any spaces in it, so if you need to separate words you can either capitalize the beginning of each new word or use an underscore (_). Make sure you hit the ENTER key after you have finished typing the name to confirm the creation of the Named Range.

As a side note, any Named Range created with the Name Box has a Workbook scope. This means the named range can be accessed by any worksheet in your Excel file.

Name Box.png

Creating Names With The «Name Manager»

If you want to customize your named ranges even more, you can open up the Name Manager (Formulas tab > Defined Names group > Name Manager button) to edit and create new named ranges.

I won’t go into great detail in this article, but know that with the Name Manager you can

  1. Change the name of an existing Named Range

  2. Change the reference formula

  3. Specify the scope (what worksheets the name can be accessed from)

On To The VBA

Now that you have had a brief overview on Named Ranges, lets dig into some VBA macros you can use to help automate the use of Named Ranges.

Add A Named Range

The below VBA code shows ways you can create various types of named ranges.

Sub NameRange_Add()
‘PURPOSE: Various ways to create a Named Range
‘SOURCE: www.TheSpreadsheetGuru.com

Dim cell As Range
Dim rng As Range
Dim RangeName As String
Dim CellName As String

‘Single Cell Reference (Workbook Scope)
  RangeName = «Price»
  CellName = «D7»

    Set cell = Worksheets(«Sheet1»).Range(CellName)
  ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell

‘Single Cell Reference (Worksheet Scope)
  RangeName = «Year»
  CellName = «A2»

    Set cell = Worksheets(«Sheet1»).Range(CellName)
  Worksheets(«Sheet1»).Names.Add Name:=RangeName, RefersTo:=cell

‘Range of Cells Reference (Workbook Scope)
  RangeName = «myData»
  CellName = «F9:J18»

    Set cell = Worksheets(«Sheet1»).Range(CellName)
  ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell

‘Secret Named Range (doesn’t show up in Name Manager)
  RangeName = «Username»
  CellName = «L45»

    Set cell = Worksheets(«Sheet1»).Range(CellName)
  ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=cell, Visible:=False

End Sub

Loop Through Named Ranges

This VBA macro code shows how you can cycle through the named ranges within your spreadsheet.

Sub NamedRange_Loop()
‘PURPOSE: Delete all Named Ranges in the Active Workbook
‘SOURCE: www.TheSpreadsheetGuru.com

Dim nm As Name

‘Loop through each named range in workbook
  For Each nm In ActiveWorkbook.Names
    Debug.Print nm.Name, nm.RefersTo
  Next nm

  ‘Loop through each named range scoped to a specific worksheet
  For Each nm In Worksheets(«Sheet1»).Names
    Debug.Print nm.Name, nm.RefersTo
  Next nm

End Sub

Delete All Named Ranges

If you need to clean up a bunch of junk named ranges, this VBA code will let you do it.

Sub NamedRange_DeleteAll()
‘PURPOSE: Delete all Named Ranges in the ActiveWorkbook (Print Areas optional)
‘SOURCE: www.TheSpreadsheetGuru.com

Dim nm As Name
Dim DeleteCount As Long

‘Delete PrintAreas as well?
  UserAnswer = MsgBox(«Do you want to skip over Print Areas?», vbYesNoCancel)
    If UserAnswer = vbYes Then SkipPrintAreas = True
    If UserAnswer = vbCancel Then Exit Sub

‘Error Handler in case Delete Function Errors out
  On Error GoTo Skip

‘Loop through each name and delete
  For Each nm In ActiveWorkbook.Names
    If SkipPrintAreas = True And Right(nm.Name, 10) = «Print_Area» Then GoTo Skip

        ‘Error Handler in case Delete Function Errors out
      On Error GoTo Skip

        ‘Delete Named Range
      nm.Delete
      DeleteCount = DeleteCount + 1

    Skip:
   ‘Reset Error Handler
      On Error GoTo 0
  Next

     ‘Report Result
  If DeleteCount = 1 Then
    MsgBox «[1] name was removed from this workbook.»
  Else
    MsgBox «[» & DeleteCount & «] names were removed from this workbook.»
  End If

End Sub

Delete Named Ranges with Error References

This VBA code will delete only Named Ranges with errors in them. These errors can be caused by worksheets being deleted or rows/columns being deleted.

Sub NamedRange_DeleteErrors()
‘PURPOSE: Delete all Named Ranges with #REF error in the ActiveWorkbook
‘SOURCE: www.TheSpreadsheetGuru.com

Dim nm As Name
Dim DeleteCount As Long

‘Loop through each name and delete
  For Each nm In ActiveWorkbook.Names
    If InStr(1, nm.RefersTo, «#REF!») > 0 Then
      ‘Error Handler in case Delete Function Errors out
        On Error GoTo Skip

            ‘Delete Named Range
        nm.Delete
        DeleteCount = DeleteCount + 1
    End If
Skip:
  ‘Reset Error Handler
    On Error GoTo 0
  Next

    ‘Report Result
  If DeleteCount = 1 Then
    MsgBox «[1] errorant name was removed from this workbook.»
  Else
    MsgBox «[» & DeleteCount & «] errorant names were removed from this workbook.»
  End If

  End Sub

Anything Missing From This Guide?

Let me know if you have any ideas for other useful VBA macros concerning Named Ranges. Or better yet, share with me your own macros and I can add them to the article for everyone else to see! I look forward to reading your comments below.

About The Author

Hey there! I’m Chris and I run TheSpreadsheetGuru website in my spare time. By day, I’m actually a finance professional who relies on Microsoft Excel quite heavily in the corporate world. I love taking the things I learn in the “real world” and sharing them with everyone here on this site so that you too can become a spreadsheet guru at your company.

Through my years in the corporate world, I’ve been able to pick up on opportunities to make working with Excel better and have built a variety of Excel add-ins, from inserting tickmark symbols to automating copy/pasting from Excel to PowerPoint. If you’d like to keep up to date with the latest Excel news and directly get emailed the most meaningful Excel tips I’ve learned over the years, you can sign up for my free newsletters. I hope I was able to provide you with some value today and I hope to see you back here soon!

— Chris
Founder, TheSpreadsheetGuru.com

Определение и использование имен в формулах

​Смотрите также​​ возможность выкладывать файлы,​ следующем точно. Ещё​ Ваш вариант. Разобрался,​. Имеется улица​Ввиду того, что​ Cell As Range,​Проблема заключается в​ абсолютным, и относительным)​ копируются и правильно​ Excel. Если желаете​ имя​Урок подготовлен для Вас​ случаев это делать​ Мы выделим ячейку​Данный способ является самым​в столбце справа​Примечание:​ смогу выложить, когда​ раз спасибо за​ как работает. Лучше​

​»40 лет победы»​ реальная задача относится​ FName As String,​ том, что в​ имена листов. И​ интерпретируются на любом​ получить еще больше​Комиссионные​ командой сайта office-guru.ru​ рекомендуется, особенного, когда​ С3, а затем​ быстрым способом присвоить​

Присвоение имени ячейке

  1. ​.​

  2. ​ Мы стараемся как можно​​ буду дома.​​ помощь.​

    Поле

  3. ​ и проще делать​

Присвоение имен из выделенного диапазона

  1. ​. А так, как​ к созданию формулы,​ F Set Cell​ моей версии MS​

  2. ​ если на обычном​​ листе…​​ информации об именах,​​. Теперь нашу формулу​

  3. ​Автор: Антон Андронов​​ имен становится слишком​ ее перезададим.​​ имя ячейке или​Выберите​​ оперативнее обеспечивать вас​​desmake​​P.S. может посмотрите​​ так, чем, как​​ в​​ возвращающей значение плотности​​ = ActiveCell F​

  4. ​ Excel 2013 (и​​ листе формулы поддаются​​С.М.​

    ​ читайте следующие статьи:​ можно записать в​Автор: Антон Андронов​

Использование имен в формулах

  1. ​ много или, когда​Перейдите на вкладку​

  2. ​ диапазону в Excel.​OK​ актуальными справочными материалами​

  3. ​: Буду очень благодарен!!!​ продолжение этого примера:​ у меня было​

    ​диспетчере имён​​ среды в зависимости​​ = Cell.Formula F​​ вероятно не только​​ корректировке, то в​: Если X -​

  4. ​Как присвоить имя ячейке​

Управление именами в книге с помощью диспетчера имен

  1. ​ следующем виде:​​Создавать и применять формулы​​ Вы ведете совместный​​Формулы​​ Чтобы воспользоваться им,​.​ на вашем языке.​WhiteCanine​

См. также

​http://www.excelworld.ru/forum/2-32434-1​ до этого.​

​имя не может​ от ее температуры​

​ = Application.ConvertFormula(F, xlA1,​ в ней) при​

​ редакторе Диспетчера задач​ в столбце B​

support.office.com

Как присвоить имя ячейке или диапазону в Excel

​ или диапазону в​Как видите, новая форма​ в Excel гораздо​ проект с другими​и выберите команду​ выполните следующие шаги:​Excel присвоит ячейкам имена​ Эта страница переведена​: А что имеется​Без макросов видимо​bmv98rus​ начинаться с цифры​ и давления (квадратичная​ xlA1, xlAbsolute) ‘​ сохранении формулы редактор​ коррекция не проходит…​ :​

Используем поле Имя

​ Excel?​ записи формулы стала​ проще, когда вместо​ людьми.​Присвоить имя​Выделите ячейку или диапазон,​

  1. ​ на основе заголовков​ автоматически, поэтому ее​ ввиду?​ не обойтись.​:​Присвоить имя в Excel
  2. ​ то пришлось назвать​​ по обоим параметрам),​​ автоматический перевод адресов​ самостоятельно добавляет к​С.М.​=Лист1!$C$4*ИНДЕКС($B:$B;СТРОКА())+Лист1!$C$5​​5 полезных правил и​​ более очевидной и​Присвоить имя в Excel
  3. ​ адресов ячеек и​​В поле​​.​ которым необходимо присвоить​
  4. ​ из указанного диапазона.​ текст может содержать​​У меня макрос​​desmake​DrMini​ улицу​ то ИМХО проще​ ячеек (диапазонов) в​ «коротким ссылкам на​: Для редактирования формул​Для любого столбца​Присвоить имя в Excel
  5. ​ рекомендаций по созданию​ простой для восприятия.​​ диапазонов в них​​Диапазон​Откроется диалоговое окно​ имя. В нашем​Выделите ячейку и введите​Присвоить имя в Excel
  6. ​ неточности и грамматические​ выдает ошибку, и​: Доброго времени суток,​,​»Сорок лет победы»​ уже создать сразу​

Используем диалоговое окно Создание имени

​ абсолютные ‘ Rem​ активный лист» название​ в Диспетчере нажмите​ (значение X -​

  1. ​ имен в Excel​ Можно пойти еще​ используются имена. Имя​отображается адрес активной​Создание имени​ случае это диапазон​ формулу.​ ошибки. Для нас​Присвоить имя в Excel
  2. ​ обозначает​​ подскажите как можно​​а с чем​​. В принципе​​ нужную UDF (определенную​Присвоить имя в Excel
  3. ​ Но в этом​​ самого листа -​​ F2.​Присвоить имя в Excel
  4. ​ слева от ячейки​​Диспетчер имен в Excel​​ дальше и для​ выступает как бы​ области, т.е. адрес​​.​​ B2:B13.​Поместите курсор туда, где​ важно, чтобы эта​і​ загрузить имена в​ связано такое представление​ ничего страшного но​ пользователем функцию).​ случае формула должна​ что препятствует корректному​IKor​ с именем формулы)​
  5. ​Как присваивать имена константам​​ значения комиссионных создать​​ идентификатором какого-либо элемента​ ячейки или диапазона,​В поле​Щелкните по полю​ вы хотите использовать​ статья была вам​DEAD MAN​​ диспетчер имен??? т.к.​​ данных?​ может есть способ​Но это не​ быть не очень​ использованию этого же​: Благодарю за совет.​ :​ в Excel?​ именованную константу. В​ рабочей книги. Имя​​ которые мы выбрали​​Имя​
  6. ​Имя​​ в формуле имя.​​ полезна. Просим вас​: Да, там должно​ список достаточно большой,​не в защиту​ обойти это ограничение?​ наш метод!​ длинной ~ 255​ имени на других​К сожалению моя​=Лист1!$C$4*Ч(ДВССЫЛ(АДРЕС(СТРОКА();СТОЛБЕЦ()-1)))+Лист1!$C$5​Присвоить имя в Excel
  7. ​Урок подготовлен для Вас​​ этом случае исчезнет​​ может присваиваться ячейкам,​ ранее. При необходимости​введите требуемое имя.​и введите необходимое​Введите первую букву имени​ уделить пару секунд​ быть:​ поэтому вручную достаточно​ формулы моей ,​​Pelena​​Уже до каких​ знаков. Rem Но​Присвоить имя в Excel​ листах.​ проблема возникает в​IKor​ командой сайта office-guru.ru​ необходимость выделять под​ диапазонам, таблицам, диаграммам,​ данный диапазон можно​

    Присвоить имя в Excel

  8. ​ В нашем случае​ имя, соблюдая правила,​​ и выберите его​​ и сообщить, помогла​Присвоить имя в Excel

​Dim i as​ сложно!​ которую можно чуть​: Здравствуйте.​ только ухищрений я​ имена коротких формул​Очевидно, что при​

​ момент сохранения изменений​: Возможно я что-то​Автор: Антон Андронов​ нее отдельную ячейку​ фигурам и т.д.​ перезадать. Для этого​ это имя​ рассмотренные здесь. Пусть​

  • ​ из появившегося списка.​ ли она вам,​ Long​
  • ​DEAD MAN​ упростить,​Поставьте для имент​
  • ​ не опускался лишь​
  • ​ можно «вкладывать» друг​ редактировании именованной формулы​

​ в редакторе Диспетчера​ делаю не так,​
​Автор: Антон Андронов​

​ на рабочем листе​

office-guru.ru

Знакомство с именами ячеек и диапазонов в Excel

​ Мы же рассмотрим​ поместите курсор в​Коэффициент​ это будет имя​Или выберите​ с помощью кнопок​WhiteCanine​: Составляете таблице со​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=INDIRECT(«‘Улицы’!R2C»&MATCH(C3;Улицы!$1:$1;FALSE)&»:R»&COUNTA(INDIRECT(«‘Улицы’!C» &MATCH(C3;Улицы!$1:$1);FALSE))& «C» &​ перед числом знак​ бы не использовать​ в друга как​ из другого листа​ задач.​ но Ваш вариант​IKor​ Excel.​

​ только имена, назначаемые​ поле​. В ряде случаев​Продажи_по_месяцам​Формулы​ внизу страницы. Для​: выдаетошибку в этой​ списком имен и​ MATCH(C3;Улицы!$1:$1;FALSE);FALSE)​ подчеркивания, а в​ VBA… видимо, и​ матрёшки. Rem Если​ (стирании старого имени​В качестве временного​

Имена ячеек и диапазонов в Excel

​ также привязывает относительные​: Уважаемые коллеги,​Назначая имена ячейкам и​ ячейкам, диапазонам и​Диапазон​ Excel автоматически подставляет​.​>​ удобства также приводим​

Имена ячеек и диапазонов в Excel

​ строке​ ссылок (незабываем о​Просто для понимания.​ источнике списка используйте​ сейчас буду использовать​ закомментировать строку F​ листа) редактор самостоятельно​ решения (работающего!) мне​ ссылки к активному​В диспетчере имен​​ диапазонам в Excel,​​ константам применительно к​, вокруг указанной области​​ имя на основе​​Нажмите клавишу​Использовать в формуле​ ссылку на оригинал​

Имена ячеек и диапазонов в Excel

​ThisWorkbook.Names.Add Sh.Cells(i, 1).Value,​ типе ссылок и​ например можно делать​ функцию ПОДСТАВИТЬ, чтобы​ разные именованные функции​ = Application.ConvertFormula …​ подставляет новое имя​ пришла в голову​ листу (на момент​ можно создать зависимость,​ мы приобретаем еще​ формулам Excel.​ появится динамическая граница.​

Простой способ выделить именованный диапазон в Excel

​ данных в соседних​Enter​и выберите имя,​ (на английском языке).​ RefersTo:=Sh.Cells(i, 2).Value​ именах листов), например:​ все списком из​ его убрать.​ для разных листов…​ , можно «запомнить»​ в «короткую ссылку».​​ возможность сворачивания в​​ редактирования поля диапазон​ одновременно привязанную абсолютными​

Имена ячеек и диапазонов в Excel

​ одно очень полезное​

Имена ячеек и диапазонов в Excel

Как вставить имя ячейки или диапазона в формулу

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

  1. ​Использование имен позволяет значительно​The_Prist​ИмяСсылка​Имена ячеек и диапазонов в Excel
  2. ​ двух колонок, где​Подробнее при наличии​lstrike​ длинную формулу, Rem​Имена ячеек и диапазонов в Excel
  3. ​В настоящий момент​ отдельную именованную_переменную самого​​ в источнике данных)…​​ ссылками к неактивным​ преимущество – возможность​​ что мы продаем​​ или укажите эту​Имена ячеек и диапазонов в Excel

​ случае так и​ создано.​Нажмите клавишу Ввод.​ упростить понимание и​: Посмотрите на стиль​Люди’=’Сотрудники отделов!’$A$1:$D$10​ первая Улица, вторая​ файла с примером​

  • ​: Форумчане, подскажите где​ переведя адреса в​ я вижу два​
  • ​ аргумента функции (в​==========================UPDATE===================​ листу(-ам) и относительными​
  • ​ быстро выделять эти​
  • ​ элитную косметику и​ область, введя диапазон​

​ произошло. Если Excel​Если нажать на раскрывающийся​
​На ленте выберите​

​ изменение формул. Вы​

office-guru.ru

Диспетчер имен. Относительная ссылка без привязки к активному листу

​ ссылок. Если столбцы​​Далее ALT+F11, InsertModule,​
​ дом. сортировка нужна​DrMini​ в Excel 2011​ формуле в абсолютные​ решения своей проблемы:​ предложенном Вами синтаксисе).​Попробовал Ваш второй​
​ ссылками на к​ области. Например, чтобы​
​ получаем фиксированный процент​ прямо в текстовое​ этого не сделал​
​ список поля​формулы > определенные имена​ можете задать имя​ буквами — то​ открываем модуль, вставляем​ по имени улицы​: Прошу прощения. Вот​ (Mac) найти​ «руками». If Not​1. использование однотипных,​
​Однако, я боюсь​ вариант формулы -​ активному листу​ выделить область, у​ комиссионных с продаж.​
​ поле. В нашем​ или такое имя​Имя​>​ для диапазона ячеек,​ и диапазон для​
​ код:​ только для группировкаи.​ файл.Размер больше 100kb.​»Диспетчер имен»​ IsError(F) Then FName​ но разных формул​ даже представить себе​

​ он работает. За​​Пожалуйста, посмотрите прилагаемый​ которой есть имя,​ На рисунке ниже​
​ случае мы выберем​
​ Вас не устраивает,​, Вы сможете увидеть​Диспетчер имен​ функции, константы или​ имени должен быть​
​Sub NamesAdd() Dim​

​ Пример в приложении.​​ Сейчас выкину часть​.​ = Cell.Cells(, 0).Value​ для каждого из​ насколько много аргументов​ счет полного использования​ файл:​ достаточно щелкнуть по​
​ представлена таблица, которая​
​ ячейку D2.​ введите требуемое Вам​ все имена, созданные​. Затем можно создать,​ таблицы. Начав использовать​ вида A1:B10. Если​ i As String​
​ а там все​ улиц.​Создал выпадающий список​ On Error Resume​ листов​ мне придется вычислять​ достаточно громоздкой конструкции​* На первом​ полю​ содержит объем продаж​Если Вас все устраивает,​
​ имя самостоятельно.​ в данной рабочей​ изменить, удалить и​

​ имена в книге,​​ цифрами: R1C1:R10C2.​
​ Dim Sh As​
​ просто Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=OFFSET(Улицы!$C$1;MATCH($C3;Улицы!B:B;FALSE)-1;0;COUNTIF(Улицы!$B:$B;$C3);1)​

​Пришлось ещё и​​ и теперь не​ Next ActiveSheet.Names.Add FName,​2. использование единой​ и насколько долгим​ в качестве относительной​ листе я задаю​Имя​ по месяцам, а​ смело жмите​В раскрывающемся списке​ книге Excel. В​ найти все имена,​ вы сможете с​:(

​Имена не должны​​ Object Set Sh​DrMini​ RAR архиватором сжимать.​

​ знаю, как отредактировать​​ F If Err​
​ формулы на базе​ окажется процесс в​ ссылки.​ коэффициенты линейной зависимости​и из раскрывающегося​
​ в ячейке D2​ОК​Область​ нашем случае это​ используемые в книге.​ легкостью обновлять, проверять​ повторяться(хотя диапазоны для​
​ = ActiveSheet ‘Цикл​: Не понял вопроса.​Pelena​ диапазон.​ = 0 Then​ ДВССЫЛ()​ реальном документе…​
​Большое спасибо за​
​* а на​ списка выбрать нужное.​ хранится процент комиссионных.​. Имя будет создано.​Вы можете указать​

​ всего лишь одно​​Дополнительные сведения об именах​ имена и управлять​ них вполне даже​ обхода списка для​Ваша формула работает​: Не вижу​

​Спасибо!​​ MsgBox «OK.», ,​Буду признателен за​
​=========================UPDATE=============================­=====​ решение, однако в​
​ втором листе использую​Диапазон будет выделен:​ Наша задача подсчитать​Помимо присвоения имен ячейкам​ область видимости создаваемого​ имя, которое мы​
​ в формулах​ ими.​ могут).​ создания имен. Начинает​ прекрасно. Только я​DrMini​Юрий М​ «СоздатьИмяФормулы» Cell.Formula =​ другие идеи.​Формулу для аргумента​ виду того, что​ формулу (свернутую при​Существует несколько способов вставить​ сколько мы заработали​ и диапазонам, иногда​
​ имени. Область видимости​ только что создали.​Использование структурированных ссылок в​Выделите ячейку.​Ну и думаю​ обходм со второй​ поначалу в ней​
​: Сейчас выкину часть​: Обычно​ F Else MsgBox​
​С.М.​ можно записать чуть​ реальная функция значительно​ помощи диспетчера имен),​
​ имя в формулу​ за прошедший год.​ полезно знать, как​
​ – это область,​В качестве примера, создадим​

​ формулах таблиц Excel​​Введите имя в поле​ не надо пояснять,​
​ строки For i​
​ запутался. Потом подставил​
​ улиц.​
​Ctrl+F3​ «Ошибка:» & vbCr​: Понял свою ошибку​ короче =ДВССЫЛ(«RC[-1]»;0)Однако, Прикрепленные​​ сложнее примера (содержит​​ вычисляющую свое значение​ Excel, Вы можете​
​Для того чтобы подсчитать​
​ присвоить имя константе.​ где вы сможете​ формулу, использующую имя​
​Общие сведения о формулах​Имя​ что ссылки должны​ = 2 To​ в свой файл​Пришлось ещё и​. Может и там​ & Err.Description, vbExclamation,​ с формулой​ файлы 20180621 свернутый​ больше относительных ссылок),​ в зависимости от​ использовать любой из​ наш заработок, необходимо​ Как это сделать​ использовать созданное имя.​Продажи_по_месяцам​ в Excel​.​ быть реальными(т.е. упоминаемые​ Sh.Cells(Rows.Count, 1).End(xlUp).Row ‘Имя​ и … не​ RAR архиватором сжимать.​ аналогично?​ «СоздатьИмяФормулы» Err.Clear End​=Лист1!$C$4*ИНДЕКС($B:$B;СТРОКА())+Лист1!$C$5​ аргумент.JPG (23.68 КБ)​ то предложенное решение​ указанного рядом (в​ предложенных ниже:​ просуммировать объемы продаж​ Вы можете узнать​ Если вы укажете​. Пусть это будет​Создание и изменение ссылки​Нажмите клавишу ВВОД.​ листы должны существовать).​ берется из столбца​ заработало. После этого​bmv98rus​lstrike​ If Else MsgBox​Выход:​С.М.​ оказывается сложнее, чем​ ячейке слева от​Выделите именованный диапазон мышью​ за весь год,​ из этого урока.​Книга​ формула, подсчитывающая общую​
​ на ячейку​Выберите диапазон, которому вы​ Для имен листов,​

​ «А», а ссылка​​ увидел сообщение от​: а если вот​
​: Юрий, спасибо.​ «Ошибка:» & vbCr​ЦитатаIKor написал #9:​: (имхо) Длинные формулы​
​ создание нескольких одинаковых​ формулы) значения аргумента​ и имя подставится​ а затем полученный​Итак, в данном уроке​, то сможете пользоваться​ сумму продаж за​Excel предлагает несколько способов​ хотите присвоить имя,​ содержащих пробелы, необходимы​ из столбца «В»​buchlotnik​
​ так​Для маководов поправочка:​:)
​ & «Application.ConvertFormula», vbExclamation,​использование однотипных, но​ лучше создавать на​ формул для каждого​ функции.​ в формулу автоматически.​ результат умножить на​ Вы узнали, как​

planetaexcel.ru

Диспетчер имен

​ именем по всей​​ прошедший год:​ присвоить имя ячейке​ включая заголовки строк​​ апострофы (1 сообщение​​ ThisWorkbook.Names.Add Sh.Cells(i, 1).Value,​
​, и стал проверять.​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=INDIRECT(ADDRESS(2;MATCH(C3;Улицы!$1:$1;FALSE);1;1;»Улицы»)&»:»& ADDRESS(COUNTA(INDIRECT(«Улицы!C» &MATCH(C3;Улицы!$1:$1);FALSE));MATCH(C3;Улицы!$1:$1;FALSE);1;1);TRUE)​ Fn+Cmd+F3​ «СоздатьИмяФормулы» End If​
​ разных формул для​

​ рабочем листе, а​​ из листов…​​Подскажите, пожалуйста, можно​​Начните вводить название имени​ комиссионные. Наша формула​

​ присвоить имя ячейке​​ книге Excel (на​
​Как видите, если ячейке​ или диапазону. Мы​

​ и столбцов.​​ от DEAD MAN:​ RefersTo:=Sh.Cells(i, 2).Value Next​ Было близко по​

​и без именованных​​Pelena​ End SubВ ячейке​

planetaexcel.ru

Начало имени в Диспетчере имён с цифры. (Формулы/Formulas)

​ каждого из листовДа,​​ потом копировать в​Может быть у​ ли создать именованную_формулу​
​ вручную, и оно​ будет выглядеть следующим​​ или диапазону в​​ всех листах), а​​ или диапазону, на​​ же в рамках​На вкладке​​ ‘Сотрудники отделов!’$A$1:$D$10).​​ i End Sub​ решению, как в​ областей. Это для​: Или через меню​​ пишем Имя, а​​ создавать​ поле «Диапазон» диалога​ кого-нибудь есть другие​ с относительными ссылками​

​ отобразится в списке​​ образом:​
​ Excel. Если желаете​ если конкретный лист​ которые ссылается формула,​ данного урока рассмотрим​Формулы​desmake​
​Находясь на листе​ моём варианте но​

​ проверки данных в​​ Вставка — Имя​ в ячейку справа​формулы-функции​ «Создание Имени».​
​ предложения?​ без жесткой привязки​

​ автозавершения формул.​​Такая формула будет вычислять​

​ получить еще больше​​ – то только​ дать осмысленные имена,​
​ только 2 самых​нажмите кнопку​

​: Огромнейшее спасибо, все​​ со списком имен​ поразило то, что​​ столбец D​​ — Определить​ — формулу,​с Областью [видимости]​IKor​

​С.М.​​ к активному листу?​

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

​ то формула станет​​ распространенных, думаю, что​​Создать из выделенного​​ работает!!!​ нажимаем ALT+F8 и​ всё делается намного​DrMini​kavaleria​наступаем на ячейку​ — [текущий] Лист.​

​: Благодарю за Ваш​​: =Лист1!$C$4*ИНДЕКС(Лист2!$B:$B;СТРОКА())+Лист1!$C$5​​В рамках примера​​ списка​
​ аргументы, используемые в​ читайте следующие статьи:​ листа. Как правило​
​ гораздо понятнее.​ каждый из них​В диалоговом окне​WhiteCanine​
​ Выполнить​ проще и меньше​​: Круть. Спасибо работает.​: спасибо! и мне​ с формулой, и​————————————————​ комментарий.​не равно​ — для использования​Использовать в формуле​ ней, не совсем​Знакомство с именами ячеек​ выбирают область видимости​

​Чтобы присвоить имя ячейке​​ Вам обязательно пригодится.​
​Создание имен из выделенного​:​desmake​ ограничений. Попробовал заработало.​buchlotnik​ помогло!​ запускаем макрос.​Рекомендую (only) макрос​​Обычно я именно​​=Лист1!$C$4*ИНДЕКС($B:$B;СТРОКА())+Лист1!$C$5​ той же формулы​, который находится на​ очевидны. Чтобы формула​ и диапазонов в​ –​ или диапазону этим​ Но прежде чем​
​ диапазона​​desmake,​: Уважаемый DEAD MAN,​bmv98rus​: для читаемости два​DrMini​IKor​ для создания именованных​ так и поступаю.​IKor​
​ не только на​ вкладке​
​ стала более понятной,​
​ Excel​Книга​

excelworld.ru

Загрузить имена в диспетчер имен

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

​: Спасибо за предложенное​​ формул на листе:​Более того -​: Именно об этой​ втором, но и​Формулы​
​ необходимо назначить областям,​
​5 полезных правил и​
​.​ действия:​ имен в Excel,​
​ заголовки, установив флажок​ а то у​ чайника на примере,​ Я и Ваш​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СМЕЩ(Улицы!$A$2;0;ПОИСКПОЗ(C3;улицы;0);СЧЁТЗ(ИНДЕКС(дома;;ПОИСКПОЗ(C3;улицы;0)));1)​ всем, кто на​ решение!​Скрытый текст Sub​ именно на листе​ проблеме я и​ на третьем листе.​.​ содержащим данные, описательные​ рекомендаций по созданию​В поле​Выделите требуемую область (на​ обратитесь к этому​
​в строке выше​ меня никак не​ как это выглядит​ вариант обязательно рассмотрю​

​DrMini​​ форуме.​Но я боюсь,​ СоздатьИмяФормулыОбластьЛист() Rem: в​ я готовлю заготовку​ пишу: при использовании​

​В тоже время,​​Итак, в данном уроке​ имена. Например, назначим​ имен в Excel​Примечание​

​ данном этапе можно​​ уроку, чтобы запомнить​

​в столбце слева​​ хочет.​ в живом файле?​
​ и применю если​:​Есть выпадающий список​​ как бы лекарство​

​ ActiveCell — формула,​​ для источника данных​ Диспетчера имен MS​
​ если не использовать​ Вы узнали, что​

​ диапазону B2:В13 имя​​Диспетчер имен в Excel​Вы можете ввести​
​ выделить любую область,​ несколько простых, но​

​,​​Получилось! Нужно, что​DEAD MAN​ не в этом​Михаил​ через​ не оказалось бы​ в ячейке слева​
​ именованного диапазона и​ Excel добавляет ко​ диспетчер имен, то​ такое имена ячеек​
​Продажи_по_месяцам​Как присваивать имена константам​ пояснение к создаваемому​ в дальнейшем вы​ полезных правил по​в строке ниже​ бы вторая ячейка​: На работе заблокирована​ задании, то в​, Спасибо и за​

​диспетчер имён​​ горше болезни…​ — ИмяФормулы. Dim​:)

​ в этом случае.​​ всем ссылкам (и​​ относительные ссылки прекрасно​​ и диапазонов в​, а ячейке В4​ в Excel?​ имени. В ряде​
​ сможете ее перезадать).​ созданию имени.​или​

planetaexcel.ru

​ не была пустой​

Вывод списка имён (Names) книги Excel на новый лист

Если вы хотите посмотреть, присутствуют ли в книге Excel назначенные имена,
сделать это просто — достаточно вызвать диспетчер имён нажатием комбинации клавиш Ctrl + F3: 

В диспетчере имён можно создать новые имена, просмотреть ранее созданные, и, при желании, изменить их.

Одно но: в диспетчере имён отображаются только видимые имена,

а в книге Excel могут присутствовать и скрытые.

Чтобы узнать количество имён в книге, а также посмотреть их значения,
мы воспользуемся макросом:

Sub ПолучениеСпискаИмёнВКниге()
    Dim n As Name, VisibleNames%, HiddenNames%, WB As Workbook, i As Long
    Set WB = ActiveWorkbook
    For Each n In WB.Names
        VisibleNames = VisibleNames - n.Visible
        HiddenNames = HiddenNames - Not n.Visible
    Next n
 
    If VisibleNames + HiddenNames = 0 Then
        MsgBox "Имена в книге отсутствуют (не назначены)", vbInformation
    Else
        msg = "Количество имён в книге: " & VisibleNames + HiddenNames & vbNewLine & _
              "Из них видимых: " & VisibleNames & ", скрытых: " & HiddenNames & vbNewLine & _
              vbNewLine & "Вывести на лист список всех имён?"
        If MsgBox(msg, vbInformation + vbYesNo, "Имена в открытом файле") = vbYes Then
            Dim sh As Worksheet: Set sh = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
            sh.Cells(1, 1).Resize(, 4).Value = _
            Array("№", "Имя", "Видимость", "Ссылка (значение)")
            sh.Cells(1, 1).Resize(, 4).Interior.ColorIndex = 15
            For i = 1 To WB.Names.Count
                Set n = WB.Names(i)
                sh.Cells(i + 1, 1).Resize(, 4).Value = _
                Array(i, n.Name, IIf(n.Visible, "Видимое", "Скрытое"), "'" & n.RefersTo)
            Next i
            sh.UsedRange.EntireColumn.AutoFit
        End If
    End If
End Sub

Для этого в прикреплённом файле нажмём зеленую кнопку,
и увидим вообщение с информацией о количестве имен в книге:

Если в диаоговом окне мы нажмём «Да», то макрос создаст новую книгу, и сформирует в ней таблицу со списком всех имен книги:

Если же вам требуется вывести список видимых имён на лист Excel, то можно воспользоваться макросом из одной строки:

Sub СписокВидимыхИмён()
    ActiveCell.ListNames
End Sub

Того же эффекта можно добиться, нажав кнопку «Все имена» в диалоговом окне, вызываемом из меню Вставка — Имя — Вставить… (в Excel 2003):

  • 29038 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

Skip to content

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

На чтение 2 мин. Просмотров 4.2k.

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

  1. Выберите диапазон, который вы хотите назвать.
  2. Перейдите на вкладку Формулы в ленте и выберите команду Определить имя.
  3. Дайте выбранному диапазону удобное для пользователя имя в диалоговом окне «Новое имя».

После нажатия кнопки ОК, ваш диапазон именуется. Чтобы убедиться в этом, вы можете перейти на вкладку Формулы и выбрать команду Диспетчер имен. Это активизирует диалоговое окно Диспетчер имен , где вы можете увидеть все примененные именованные диапазоны.

Define Name

New Name

Name Manager

Создание именованного диапазона с помощью VBA является менее трудоемким.

Содержание

  1. Код макроса
  2. Как этот код работает
  3. Как макрос работает
  4. Код макроса
  5. Как этот код работает
  6. Код макроса
  7. Как использовать

Код макроса

Sub PrisvaivaemImyaDiapazonu()
'Присваиваем имя диапазону
Range("D6:D17").Name = "MyData"
End Sub

Как этот код работает

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

Как макрос работает

Вы просто передаете имя диапазона с помощью объекта Range. Этот макрос позволяет выбрать диапазон:

Код макроса

Sub ViborDiapazona()
Range("MyData").Select
End Sub

Как этот код работает

Как и в случае нормальных диапазонов, вы можете обратиться к диапазону с помощью оператора With … End With. Этот оператор говорит Excel, что любое действие, которое вы выполняете относится к объекту, который вы указали. Это не только избавит вас от необходимости повторять синтаксис, но и позволит легко добавлять действия, просто добавляя их между With и End With.

Код макроса

Sub ViborDiapazonaFormatirovanieWith()
With Range("MyData")
.NumberFormat = "#,##0"
.Font.Bold = True
.Interior.ColorIndex = 36
End With
End Sub

Как использовать

Для реализации такого рода макроса, вы можете скопировать и вставить его в стандартный модуль:

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код

Хитрости »

1 Май 2011              195498 просмотров


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

  • Общие сведения об именованных диапазонах
  • Как обратиться к именованному диапазону(как использовать в формулах и VBA)
  • Ограничения для именованных диапазонов
  • Создание именованного диапазона
  • Изменение именованного диапазона
  • Удаление именованного диапазона

Для чего вообще нужны именованные диапазоны? Обращение к именованному диапазону гораздо удобнее, чем прописывание адреса в формулах и VBA:

  • Предположим, что в формуле мы ссылаемся на диапазон A1:C10 (возможно даже не один раз). Для примера возьмем простую функцию СУММ(суммирует значения указанных ячеек):
    =СУММ(A1:C10;F1:K10)
    Затем нам стало необходимо суммировать другие данные(скажем вместо диапазона A1:C10 в диапазоне D2:F11). В случае с обычным указанием диапазона нам придется искать все свои формулы и менять там адрес диапазона на новый. Но если назначить своему диапазону A1:C10 имя(к примеру ДиапазонСумм), то в формуле ничего менять не придется — достаточно будет просто изменить ссылку на ячейки в самом имени один раз. Я привел пример с одной формулой — а что, если таких формул 10? 30?
    Примерно такая же ситуация и с использованием в кодах: указав имя диапазона один раз не придется каждый раз при изменении и перемещении этого диапазона прописывать его заново в коде.
  • Именованный диапазон не просто так называется именованным. Если взять пример выше — то отображение в формуле названия ДиапазонСумм куда нагляднее, чем A1:C10. В сложных формулах куда проще будет ориентироваться по именам, чем по адресам. Почему удобнее: если сменить стиль отображения ссылок (подробнее про стиль), то диапазон A1:C10 будет выглядеть как-то вроде этого: R1C1:R10C3. А если назначить имя — то оно как было ДиапазонСумм, так им и останется.
  • При вводе формулы/функции в ячейку, можно не искать нужный диапазон, а начать вводить лишь первые буквы его имени и Excel предложит его ко вводу:
    Вставка имени в функцию
    Данный метод доступен лишь в версиях Excel 2007 и выше

Как обратиться к именованному диапазону
Обращение к именованному диапазону из VBA

	MsgBox Range("ДиапазонСумм").Address
	MsgBox [ДиапазонСумм].Address

Читать подробнее про обращение к диапазонам из VBA

Обращение к именованному диапазону в формулах/функциях

  1. =СУММ(ДиапазонСумм)
  2. =ВПР(«Критерий»;ДиапазонСумм;2;0)
    Читать подробнее про функцию ВПР

Если при указании диапазона в формуле выделить именованный диапазон, то его имя автоматически подставится в формулу вместо фактического адреса ячеек:
Выделение в формуле


Ограничения, накладываемые на создание имен

  • В качестве имени диапазона не могут быть использованы словосочетания, содержащие пробел. Вместо него лучше использовать нижнее подчеркивание _ или точку: Name_1, Name.1
  • Первым символом имени должна быть буква, знак подчеркивания (_) или обратная косая черта (). Остальные символы имени могут быть буквами, цифрами, точками и знаками подчеркивания
  • Нельзя в качестве имени использовать зарезервированные в Excel константы — R, C и RC(как прописные, так и строчные). Связано с тем, что данные буквы используются самим Excel для адресации ячеек при использовании стиля ссылок R1C1 (читать подробнее про стили ссылок)
  • Нельзя давать именам названия, совпадающие с адресацией ячеек: B$100, D2(для стиля ссылок А1) или R1C1, R7(для стиля R1C1). И хотя при включенном стиле ссылок R1C1 допускается дать имени название вроде A1 или D130 — это не рекомендуется делать, т.к. если впоследствии стиль отображения ссылок для книги будет изменен — то Excel не примет такие имена и предложит их изменить. И придется изменять названия всех подобных имен. Если очень хочется — можно просто добавить нижнее подчеркивание к имени: _A1
  • Длина имени не может превышать 255 символов

Создание именованного диапазона
Способ первый
обычно при создании простого именованного диапазона я использую именно его. Выделяем ячейку или группу ячеек, имя которым хотим присвоить -щелкаем левой кнопкой мыши в окне адреса и вписываем имя, которое хотим присвоить. Жмем Enter:
Создание через поле имен

Способ второй
Выделяем ячейку или группу ячеек. Жмем правую кнопку мыши для вызова контекстного меню ячеек. Выбираем пункт:

  • Excel 2007: Имя диапазона (Range Name)
  • Excel 2010: Присвоить имя (Define Name)

Меню ячеек
либо:
Жмем Ctrl+F3
либо:

  • 2007-2016 Excel: вкладка Формулы (Formulas)Диспетчер имен (Name Manager)Создать (New)(либо на той же вкладке сразу — Присвоить имя (Define Name))
  • 2003 Excel: ВставкаИмяПрисвоить

Появляется окно создания имени
Окно создания имени
Имя (Name) — указывается имя диапазона. Необходимо учитывать ограничения для имен, которые я описывал в начале статьи.
Область (Scope) — указывается область действия создаваемого диапазона — Книга, либо Лист1:

  • Лист1 (Sheet1) — созданный именованный диапазон будет доступен только из указанного листа. Это позволяет указать разные диапазоны для разных листов, но указав одно и тоже имя диапазона
  • Книга (Workbook) — созданный диапазон можно будет использовать из любого листа данной книги

Примечание (Comment) — здесь можно записать пометку о созданном диапазоне, например для каких целей планируется его использовать. Позже эту информацию можно будет увидеть из диспетчера имен (Ctrl+F3)
Диапазон (Refers to) — при данном способе создания в этом поле автоматически проставляется адрес выделенного ранее диапазона. Его можно при необходимости тут же изменить.


Изменение диапазона
Чтобы изменить имя Именованного диапазона, либо ссылку на него необходимо всего лишь вызывать диспетчер имен(Ctrl+F3), выбрать нужное имя и нажать кнопку Изменить(Edit…).
Изменить можно имя диапазона(Name), ссылку(RefersTo) и Примечание(Comment). Область действия(Scope) изменить нельзя, для этого придется удалить текущее имя и создать новое, с новой областью действия.


Удаление диапазона
Чтобы удалить Именованный диапазон необходимо вызывать диспетчер имен(Ctrl+F3), выбрать нужное имя и нажать кнопку Удалить(Delete…).

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

Так же см.:
Как обратиться к диапазону из VBA
Динамические именованные диапазоны


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Excel vba диапазон ячеек в переменную
  • Excel vba диапазон непустых ячеек
  • Excel vba диапазон как таблица
  • Excel vba диапазон весь столбец
  • Excel vba диапазон весь лист