|
kolper Пользователь Сообщений: 6 |
Создал пользовательскую функцию. Работает, возвращает булево значение. |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
kolper, здравия. Файл-пример с Вашей УДФ, согласно правил форума. <#0> |
|
kolper Пользователь Сообщений: 6 |
Ну это совершенно незачем, функция-то работает.. |
|
Сергей Пользователь Сообщений: 11251 |
#4 19.08.2015 12:10:47
Лень двигатель прогресса, доказано!!! |
||
|
TSN Пользователь Сообщений: 217 |
#5 19.08.2015 12:11:56
Тогда к чему вопрос Изменено: TSN — 21.08.2015 12:05:55 |
||
|
Влад Пользователь Сообщений: 1189 |
Запихнуть пользовательскую формулу в именованный диапазон. |
|
kolper Пользователь Сообщений: 6 |
Вот это я не очень понимаю… |
|
kolper Пользователь Сообщений: 6 |
#8 19.08.2015 12:21:49
Формула — работает. |
||
|
Z Пользователь Сообщений: 6111 Win 10, MSO 2013 SP1 |
#9 19.08.2015 12:26:02
OFF Вы начинаете доставать форумчан своей упертоcтью… Изменено: Z — 19.08.2015 12:26:27 «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. 😉 |
||
|
kolper Пользователь Сообщений: 6 |
#10 19.08.2015 12:34:56 Странно, что проблему понял только один прочитавший…
Надеюсь, ясности прибавилось… Изменено: kolper — 20.08.2015 12:57:55 |
||
|
Влад Пользователь Сообщений: 1189 |
#11 19.08.2015 12:52:09
Плохо, что плохо представляете. Пишите формулу с ссылкой на ячейку сразу в имя. Если ссылка задана относительная, она будет меняться в зависимости от ячейки, в которой установлена проверка данных. Присвоение имени нужно делать, когда ячейка с проверкой активна. |
||
|
Юрий М Модератор Сообщений: 60347 Контакты см. в профиле |
kolper, код следует оформлять тегом. Ищите такую кнопку <…>. Исправляйте. |
|
kolper Пользователь Сообщений: 6 |
Конкретной ссылки в инете не нашел, но по косвенным данным — использовать UDF в проверке данных нельзя. |
|
Влад Пользователь Сообщений: 1189 |
#14 20.08.2015 14:49:34 Прямо — нельзя, через именованный диапазон — можно. |
|
Kirill_486 0 / 0 / 0 Регистрация: 25.01.2017 Сообщений: 4 |
||||
|
1 |
||||
|
25.01.2017, 15:10. Показов 1340. Ответов 4 Метки нет (Все метки)
В общем, идея была простая.
Код выше выдает массив уникальных членов диапазона. А почему если код «=removeEquals(A1:A9)» засунуть в поле источник для проверки вводимых значений, он пишет «Указанный именованный диапазон не найден»? Миниатюры
__________________
0 |
|
3815 / 2244 / 749 Регистрация: 02.11.2012 Сообщений: 5,894 |
|
|
25.01.2017, 15:15 |
2 |
|
а если формулу загнать в имя и в списке использовать имя?
0 |
|
0 / 0 / 0 Регистрация: 25.01.2017 Сообщений: 4 |
|
|
25.01.2017, 15:25 [ТС] |
3 |
|
Хорошая новость!)))
0 |
|
0 / 0 / 0 Регистрация: 25.01.2017 Сообщений: 4 |
|
|
25.01.2017, 15:35 [ТС] |
4 |
|
При просмотре результирующего массива, Excel пишет про ошибку мол к диапазону прилегают значения. Миниатюры
0 |
|
0 / 0 / 0 Регистрация: 25.01.2017 Сообщений: 4 |
|
|
25.01.2017, 15:44 [ТС] |
5 |
|
Тоже не может. Если ему прописать диапазон так =removeEquals($A$1:$A$9), ошибки нет, а выпадающий список все равно это не ест(
0 |
После создания именованного диапазона вы можете использовать этот именованный диапазон во многих ячейках и формулах. Но как узнать эти ячейки и формулы в текущей книге? В этой статье представлены три хитрых способа решить эту проблему.
Найдите, где используется определенный именованный диапазон, с помощью функции поиска и замены
Найдите, где определенный именованный диапазон используется с VBA
Найдите, где используется определенный именованный диапазон с Kutools for Excel
Вкладка Office позволяет редактировать и просматривать в Office с вкладками и значительно упрощает работу …
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Повторное использование чего угодно: Добавляйте наиболее часто используемые или сложные формулы, диаграммы и все остальное в избранное и быстро используйте их в будущем.
- Более 20 текстовых функций: Извлечь число из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния: Несколько книг и листов в одну; Объединить несколько ячеек / строк / столбцов без потери данных; Объедините повторяющиеся строки и сумму.
- Разделить инструменты: Разделение данных на несколько листов в зависимости от ценности; Из одной книги в несколько файлов Excel, PDF или CSV; От одного столбца к нескольким столбцам.
- Вставить пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
- Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, периодичности и др .; Фильтр жирным шрифтом, формулы, комментарий …
- Более 300 мощных функций; Работает с Office 2007-2021 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Найдите, где используется определенный именованный диапазон, с помощью функции поиска и замены
Мы можем легко применить Excel Найти и заменить функция, чтобы узнать все ячейки, применяющие определенный именованный диапазон. Пожалуйста, сделайте следующее:
1. нажмите Ctrl + F одновременно клавиши, чтобы открыть диалоговое окно «Найти и заменить».
Внимание: Вы также можете открыть это диалоговое окно «Найти и заменить», щелкнув значок Главная > Найти и выбрать > Найдите.
2. В открывшемся диалоговом окне «Найти и заменить» выполните следующие действия:

(1) Введите имя определенного именованного диапазона в поле Найти то, что коробка;
(2) Выберите Workbook из В раскрывающийся список;
(3) Щелкните значок Найти все кнопку.
Внимание: Если раскрывающийся список «Внутри» не отображается, щелкните значок Опции кнопку, чтобы развернуть параметры поиска.
Теперь вы увидите, что все ячейки, содержащие имя указанного именованного диапазона, перечислены в нижней части диалогового окна «Найти и заменить». Смотрите скриншот:

Внимание: Метод «Найти и заменить» не только обнаруживает все ячейки, использующие этот определенный именованный диапазон, но также обнаруживает все ячейки, покрывающие этот именованный диапазон.
Найдите, где определенный именованный диапазон используется с VBA
Этот метод представит макрос VBA, чтобы узнать все ячейки, которые используют определенный именованный диапазон в Excel. Пожалуйста, сделайте следующее:
1. нажмите другой + F11 одновременно клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модули, скопируйте и вставьте следующий код в открывающееся окно модуля.
VBA: найти, где используется определенный именованный диапазон
Sub Find_namedrange_place()
Dim xRg As Range
Dim xCell As Range
Dim xSht As Worksheet
Dim xFoundAt As String
Dim xAddress As String
Dim xShName As String
Dim xSearchName As String
On Error Resume Next
xShName = Application.InputBox("Please type a sheet name you will find cells in:", "Kutools for Excel", Application.ActiveSheet.Name)
Set xSht = Application.Worksheets(xShName)
Set xRg = xSht.Cells.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If Not xRg Is Nothing Then
xSearchName = Application.InputBox("Please type the name of named range:", "Kutools for Excel")
Set xCell = xRg.Find(What:=xSearchName, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not xCell Is Nothing Then
xAddress = xCell.Address
If IsPresent(xCell.Formula, xSearchName) Then
xFoundAt = xCell.Address
End If
Do
Set xCell = xRg.FindNext(xCell)
If Not xCell Is Nothing Then
If xCell.Address = xAddress Then Exit Do
If IsPresent(xCell.Formula, xSearchName) Then
If xFoundAt = "" Then
xFoundAt = xCell.Address
Else
xFoundAt = xFoundAt & ", " & xCell.Address
End If
End If
Else
Exit Do
End If
Loop
End If
If xFoundAt = "" Then
MsgBox "The Named Range was not found", , "Kutools for Excel"
Else
MsgBox "The Named Range has been found these locations: " & xFoundAt, , "Kutools for Excel"
End If
On Error Resume Next
xSht.Range(xFoundAt).Select
End If
End Sub
Private Function IsPresent(sFormula As String, sName As String) As Boolean
Dim xPos1 As Long
Dim xPos2 As Long
Dim xLen As Long
Dim I As Long
xLen = Len(sFormula)
xPos2 = 1
Do
xPos1 = InStr(xPos2, sFormula, sName) - 1
If xPos1 < 1 Then Exit Do
IsPresent = IsVaildChar(sFormula, xPos1)
xPos2 = xPos1 + Len(sName) + 1
If IsPresent Then
If xPos2 <= xLen Then
IsPresent = IsVaildChar(sFormula, xPos2)
End If
End If
Loop
End Function
Private Function IsVaildChar(sFormula As String, Pos As Long) As Boolean
Dim I As Long
IsVaildChar = True
For I = 65 To 90
If UCase(Mid(sFormula, Pos, 1)) = Chr(I) Then
IsVaildChar = False
Exit For
End If
Next I
If IsVaildChar = True Then
If UCase(Mid(sFormula, Pos, 1)) = Chr(34) Then
IsVaildChar = False
End If
End If
If IsVaildChar = True Then
If UCase(Mid(sFormula, Pos, 1)) = Chr(95) Then
IsVaildChar = False
End If
End If
End Function
3. Нажмите Run или нажмите F5 Ключ для запуска этого VBA.
4. Теперь в первом открывшемся диалоговом окне Kutools for Excel введите имя рабочего листа и нажмите OK кнопка; а затем во втором диалоговом окне открытия введите в него имя определенного именованного диапазона и щелкните значок OK кнопка. Смотрите скриншоты:


5. Теперь появляется третье диалоговое окно Kutools for Excel, в котором перечислены ячейки с использованием определенного именованного диапазона, как показано ниже.

После нажатия OK кнопку, чтобы закрыть это диалоговое окно, эти найденные ячейки сразу выбираются на указанном листе.
Внимание: Этот VBA может искать только ячейки, используя определенный именованный диапазон на одном листе за раз.
Найдите, где используется определенный именованный диапазон с Kutools for Excel
Если у вас установлен Kutools for Excel, его Заменить имена диапазонов утилита может помочь вам найти и перечислить все ячейки и формулы, которые используют определенный именованный диапазон в Excel.
1. Нажмите Кутулс > Больше > Заменить имена диапазонов , чтобы открыть диалоговое окно «Заменить имена диапазонов».

2. В открывшемся диалоговом окне «Заменить имена диапазонов» перейдите к Имя и фамилия и нажмите Базовое имя раскрывающийся список и выберите из него определенный именованный диапазон, как показано ниже:

Теперь все ячейки и соответствующие формулы, которые используют определенный именованный диапазон, сразу отображаются в диалоговом окне.
3. Закройте диалоговое окно «Заменить имена диапазонов».
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Лучшие инструменты для работы в офисе
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

Вопрос:
Может ли apache POI 3.12 делать VLOOKUP на другой лист? Скажем, у меня есть следующая формула (эта формула работает в Excel):
VLOOKUP(N6,Baskets,14,0)
Я пытаюсь использовать его, чтобы получить значение из листа Baskets, используя его на другом листе.
Он дает эту ошибку:
org.apache.poi.ss.formula.FormulaParseException: Specified named range 'Baskets' does not exist in the current workbook.
При поиске в Интернете на этом я действительно не нашел ответа. API POI для VLOOKUP предлагает мне, что он может использоваться только для использования в диапазонах, указанных на текущем листе. Однако, вероятно, я просто добавляю значение к имени аргумента table_array. Это все, что я нашел для документации.
После того, как ответ был найден здесь, это источник моей путаницы. Согласно документации Libre Office аргумент массива должен иметь более одного столбца. Первый столбец должен содержать критерий поиска, а остальные столбцы должны содержать столбец, используемый в качестве аргумента индекса. Наконец, аргумент индекса относится к аргументу массива, а не индексам столбцов книги.
Лучший ответ:
У меня есть рабочий пример для вас.
formulaCell.setCellFormula("IF(ISERROR(VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE)),"",VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE))" );
Я использую VLOOKUP, чтобы узнать, что данные на другом листе равны моим данным на текущем листе.
processName – это только строка для сравнения моих данных.
Моя проблема заключалась в указанном диапазоне на другом листе !$A$4:$A$360 "" и '' вокруг оператора VLOOKUP.
Содержание
- Манипуляции с именованными областями
- Создание именованного диапазона
- Операции с именованными диапазонами
- Управление именованными диапазонами
- Вопросы и ответы

Одним из инструментов, который упрощает работу с формулами и позволяет оптимизировать работу с массивами данных, является присвоение этим массивам наименования. Таким образом, если вы хотите сослаться на диапазон однородных данных, то не нужно будет записывать сложную ссылку, а достаточно указать простое название, которым вы сами ранее обозначили определенный массив. Давайте выясним основные нюансы и преимущества работы с именованными диапазонами.
Манипуляции с именованными областями
Именованный диапазон — это область ячеек, которой пользователем присвоено определенное название. При этом данное наименование расценивается Excel, как адрес указанной области. Оно может использоваться в составе формул и аргументов функций, а также в специализированных инструментах Excel, например, «Проверка вводимых значений».
Существуют обязательные требования к наименованию группы ячеек:
- В нём не должно быть пробелов;
- Оно обязательно должно начинаться с буквы;
- Его длина не должна быть больше 255 символов;
- Оно не должно быть представлено координатами вида A1 или R1C1;
- В книге не должно быть одинаковых имен.
Наименование области ячеек можно увидеть при её выделении в поле имен, которое размещено слева от строки формул.

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

Создание именованного диапазона
Прежде всего, узнаем, как создать именованный диапазон в Экселе.
- Самый быстрый и простой вариант присвоения названия массиву – это записать его в поле имен после выделения соответствующей области. Итак, выделяем массив и вводим в поле то название, которое считаем нужным. Желательно, чтобы оно легко запоминалось и отвечало содержимому ячеек. И, безусловно, необходимо, чтобы оно отвечало обязательным требованиям, которые были изложены выше.
- Для того, чтобы программа внесла данное название в собственный реестр и запомнила его, жмем по клавише Enter. Название будет присвоено выделенной области ячеек.


Выше был назван самый быстрый вариант наделения наименованием массива, но он далеко не единственный. Эту процедуру можно произвести также через контекстное меню
- Выделяем массив, над которым требуется выполнить операцию. Клацаем по выделению правой кнопкой мыши. В открывшемся списке останавливаем выбор на варианте «Присвоить имя…».
- Открывается окошко создания названия. В область «Имя» следует вбить наименование в соответствии с озвученными выше условиями. В области «Диапазон» отображается адрес выделенного массива. Если вы провели выделение верно, то вносить изменения в эту область не нужно. Жмем по кнопке «OK».
- Как можно видеть в поле имён, название области присвоено успешно.




Ещё один вариант выполнения указанной задачи предусматривает использование инструментов на ленте.
- Выделяем область ячеек, которую требуется преобразовать в именованную. Передвигаемся во вкладку «Формулы». В группе «Определенные имена» производим клик по значку «Присвоить имя».
- Открывается точно такое же окно присвоения названия, как и при использовании предыдущего варианта. Все дальнейшие операции выполняются абсолютно аналогично.


Последний вариант присвоения названия области ячеек, который мы рассмотрим, это использование Диспетчера имен.
- Выделяем массив. На вкладке «Формулы», клацаем по крупному значку «Диспетчер имен», расположенному всё в той же группе «Определенные имена». Или же можно вместо этого применить нажатие сочетания клавиш Ctrl+F3.
- Активируется окно Диспетчера имён. В нем следует нажать на кнопку «Создать…» в верхнем левом углу.
- Затем запускается уже знакомое окошко создания файлов, где нужно провести те манипуляции, о которых шёл разговор выше. То имя, которое будет присвоено массиву, отобразится в Диспетчере. Его можно будет закрыть, нажав на стандартную кнопку закрытия в правом верхнем углу.



Урок: Как присвоить название ячейке в Экселе
Операции с именованными диапазонами
Как уже говорилось выше, именованные массивы могут использоваться во время выполнения различных операций в Экселе: формулы, функции, специальные инструменты. Давайте на конкретном примере рассмотрим, как это происходит.
На одном листе у нас перечень моделей компьютерной техники. У нас стоит задача на втором листе в таблице сделать выпадающий список из данного перечня.
- Прежде всего, на листе со списком присваиваем диапазону наименование любым из тех способов, о которых шла речь выше. В итоге, при выделении перечня в поле имён у нас должно отображаться наименование данного массива. Пусть это будет наименование «Модели».
- После этого перемещаемся на лист, где находится таблица, в которой нам предстоит создать выпадающий список. Выделяем область в таблице, в которую планируем внедрить выпадающий список. Перемещаемся во вкладку «Данные» и щелкаем по кнопке «Проверка данных» в блоке инструментов «Работа с данными» на ленте.
- В запустившемся окне проверки данных переходим во вкладку «Параметры». В поле «Тип данных» выбираем значение «Список». В поле «Источник» в обычном случае нужно либо вручную вписать все элементы будущего выпадающего списка, либо дать ссылку на их перечень, если он расположен в документе. Это не очень удобно, особенно, если перечень располагается на другом листе. Но в нашем случае все намного проще, так как мы соответствующему массиву присвоили наименование. Поэтому просто ставим знак «равно» и записываем это название в поле. Получается следующее выражение:
=МоделиЖмем по «OK».
- Теперь при наведении курсора на любую ячейку диапазона, к которой мы применили проверку данных, справа от неё появляется треугольник. При нажатии на этот треугольник открывается список вводимых данных, который подтягивается из перечня на другом листе.
- Нам просто остается выбрать нужный вариант, чтобы значение из списка отобразилось в выбранной ячейке таблицы.





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

- Прежде всего, каждой строке соответствующего филиала в таблице присвоим название. Для Филиала 1 выделяем область с ячейками, в которых содержатся данные о выручке по нему за 3 месяца. После выделения в поле имен пишем наименование «Филиал_1» (не забываем, что название не может содержать пробел) и щелкаем по клавише Enter. Наименование соответствующей области будет присвоено. При желании можно использовать любой другой вариант присвоения наименования, о котором шел разговор выше.
- Таким же образом, выделяя соответствующие области, даем названия строкам и других филиалов: «Филиал_2», «Филиал_3», «Филиал_4», «Филиал_5».
- Выделяем элемент листа, в который будет выводиться итог суммирования. Клацаем по иконке «Вставить функцию».
- Инициируется запуск Мастера функций. Производим перемещение в блок «Математические». Останавливаем выбор из перечня доступных операторов на наименовании «СУММ».
- Происходит активация окошка аргументов оператора СУММ. Данная функция, входящая в группу математических операторов, специально предназначена для суммирования числовых значений. Синтаксис представлен следующей формулой:
=СУММ(число1;число2;…)Как нетрудно понять, оператор суммирует все аргументы группы «Число». В виде аргументов могут применяться, как непосредственно сами числовые значения, так и ссылки на ячейки или диапазоны, где они расположены. В случае применения массивов в качестве аргументов используется сумма значений, которая содержится в их элементах, подсчитанная в фоновом режиме. Можно сказать, что мы «перескакиваем», через действие. Именно для решения нашей задачи и будет использоваться суммирование диапазонов.
Всего оператор СУММ может насчитывать от одного до 255 аргументов. Но в нашем случае понадобится всего три аргумента, так как мы будет производить сложение трёх диапазонов: «Филиал_1», «Филиал_3» и «Филиал_5».
Итак, устанавливаем курсор в поле «Число1». Так как мы дали названия диапазонам, которые требуется сложить, то не нужно ни вписывать координаты в поле, ни выделять соответствующие области на листе. Достаточно просто указать название массива, который подлежит сложению: «Филиал_1». В поля «Число2» и «Число3» соответственно вносим запись «Филиал_3» и «Филиал_5». После того, как вышеуказанные манипуляции были сделаны, клацаем по «OK».
- Результат вычисления выведен в ячейку, которая была выделена перед переходом в Мастер функций.






Как видим, присвоение названия группам ячеек в данном случае позволило облегчить задачу сложения числовых значений, расположенных в них, в сравнении с тем, если бы мы оперировали адресами, а не наименованиями.
Конечно, эти два примера, которые мы привели выше, показывают далеко не все преимущества и возможности применения именованных диапазонов при использовании их в составе функций, формул и других инструментов Excel. Вариантов использования массивов, которым было присвоено название, неисчислимое множество. Тем не менее, указанные примеры все-таки позволяют понять основные преимущества присвоения наименования областям листа в сравнении с использованием их адресов.
Урок: Как посчитать сумму в Майкрософт Эксель
Управление именованными диапазонами
Управлять созданными именованными диапазонами проще всего через Диспетчер имен. При помощи данного инструмента можно присваивать имена массивам и ячейкам, изменять существующие уже именованные области и ликвидировать их. О том, как присвоить имя с помощью Диспетчера мы уже говорили выше, а теперь узнаем, как производить в нем другие манипуляции.
- Чтобы перейти в Диспетчер, перемещаемся во вкладку «Формулы». Там следует кликнуть по иконке, которая так и называется «Диспетчер имен». Указанная иконка располагается в группе «Определенные имена».
- После перехода в Диспетчер для того, чтобы произвести необходимую манипуляцию с диапазоном, требуется найти его название в списке. Если перечень элементов не очень обширный, то сделать это довольно просто. Но если в текущей книге располагается несколько десятков именованных массивов или больше, то для облегчения задачи есть смысл воспользоваться фильтром. Клацаем по кнопке «Фильтр», размещенной в правом верхнем углу окна. Фильтрацию можно выполнять по следующим направлениям, выбрав соответствующий пункт открывшегося меню:
- Имена на листе;
- в книге;
- с ошибками;
- без ошибок;
- Определенные имена;
- Имена таблиц.
Для того, чтобы вернутся к полному перечню наименований, достаточно выбрать вариант «Очистить фильтр».
- Для изменения границ, названия или других свойств именованного диапазона следует выделить нужный элемент в Диспетчере и нажать на кнопку «Изменить…».
- Открывается окно изменение названия. Оно содержит в себе точно такие же поля, что и окно создания именованного диапазона, о котором мы говорили ранее. Только на этот раз поля будут заполнены данными.
В поле «Имя» можно сменить наименование области. В поле «Примечание» можно добавить или отредактировать существующее примечание. В поле «Диапазон» можно поменять адрес именованного массива. Существует возможность сделать, как применив ручное введение требуемых координат, так и установив курсор в поле и выделив соответствующий массив ячеек на листе. Его адрес тут же отобразится в поле. Единственное поле, значения в котором невозможно отредактировать – «Область».
После того, как редактирование данных окончено, жмем на кнопку «OK».




Также в Диспетчере при необходимости можно произвести процедуру удаления именованного диапазона. При этом, естественно, будет удаляться не сама область на листе, а присвоенное ей название. Таким образом, после завершения процедуры к указанному массиву можно будет обращаться только через его координаты.
Это очень важно, так как если вы уже применяли удаляемое наименование в какой-то формуле, то после удаления названия данная формула станет ошибочной.
- Чтобы провести процедуру удаления, выделяем нужный элемент из перечня и жмем на кнопку «Удалить».
- После этого запускается диалоговое окно, которое просит подтвердить свою решимость удалить выбранный элемент. Это сделано во избежание того, чтобы пользователь по ошибке не выполнил данную процедуру. Итак, если вы уверены в необходимости удаления, то требуется щелкнуть по кнопке «OK» в окошке подтверждения. В обратном случае жмите по кнопке «Отмена».
- Как видим, выбранный элемент был удален из перечня Диспетчера. Это означает, что массив, к которому он был прикреплен, утратил наименование. Теперь он будет идентифицироваться только по координатам. После того, как все манипуляции в Диспетчере завершены, клацаем по кнопке «Закрыть», чтобы завершить работу в окне.



Применение именованного диапазона способно облегчить работу с формулами, функциями и другими инструментами Excel. Самими именованными элементами можно управлять (изменять и удалять) при помощи специального встроенного Диспетчера.
Я просмотрел несколько примеров для своего вопроса, но не смог найти ответ, который работает.
Задний план:
У меня есть список элементов (скажем, яблоко, апельсин, банан) на листе Sheet1 (A2: A77, который уже является определенным диапазоном с именем «Список»).
Затем у меня есть другой лист (скажем, Sheet2) с несколькими ячейками, где появляется пользовательская форма (созданная с помощью кода vba), где пользователь может выбрать элемент и нажать «ОК».
Однако из-за характера пользовательской формы (и списка) у вас могут быть орфографические ошибки и т. д., и она все равно будет принята. Поэтому я хотел бы создать проверку, в которой она соответствует вводу в данный список (чтобы пользователи не могли вводить что-либо еще). Пользовательская форма/код предназначена для обеспечения возможности поиска (а не просто для простого списка проверки данных).
Проблема:
Я попытался создать это с помощью кода vba, который проверяет ввод, сопоставляет его со списком Sheet1 и, если совпадения нет, показывает msgbox с оператором. Это частично сработало (для некоторых букв, но не для других, очень странно).
Вот код, который у меня был:
Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim rSearchRng As Range
Dim vFindvar As Variant
If Not Intersect([B7:B26], Target) Is Nothing Then
Set rSearchRng = Sheet4.Range("Liste")
Set vFindvar = rSearchRng.Find(Target.Value)
If Not vFindvar Is Nothing Then
MsgBox "The Audit Project Name you have entered is not valid. Please try again!", vbExclamation, "Error!"
Selection.ClearContents
End If
End If
Application.EnableEvents = True
End Sub
Поэтому я подумал о создании этого сообщения об ошибке вместо простой проверки данных.
Проверка данных
- Я попробовал опцию «список» (и поставил ее равной именованному диапазону), но это ничего не дало (окно ошибки не появилось)
- Я попробовал «Пользовательский» со следующей формулой «СУММПРОИЗВ (— (B12 = Список)> 0) = ИСТИНА (я нашел это в сообщении, которое работало для других, когда я попробовал его в ячейке, это дало мне ожидаемое «ИСТИНА /FALSE» результаты), но все равно ничего не появляется
ОБНОВИТЬ
Рекомендации по проверке данных Tigeravatars работают, если у вас нет пользовательской формы (см. комментарии ниже).
Чтобы он работал с пользовательской формой, я изменил «MatchEntry» на TRUE, а также удалил все нежелательные «события изменения» из моего кода ComboBox. Окончательный код, который я использую сейчас, приведен ниже:
Dim a()
Private Sub CommandButton2_Click()
End Sub
Private Sub UserForm_Initialize()
a = [Liste].Value
Me.ComboBox1.List = a
End Sub
Private Sub ComboBox1_Change()
Set d1 = CreateObject("Scripting.Dictionary")
tmp = UCase(Me.ComboBox1) & "*"
For Each c In a
If UCase(c) Like tmp Then d1(c) = ""
Next c
Me.ComboBox1.List = d1.keys
Me.ComboBox1.DropDown
End Sub
Private Sub CommandButton1_Click()
ActiveCell = Me.ComboBox1
Unload Me
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Я думал, что покажу это здесь, если кто-то наткнется на мой вопрос.
Спасибо!
Вы назначили имя диапазонуячеек, и… возможно, вы забыли местоположение. Именуемый диапазон можно найти с помощью функции «Перейти», которая позволяет перейти к любому именоваемом диапазону во всей книге.
-
Именующий диапазон можно найти на вкладке «Главная», нажав кнопку «Найти &Выбрать» и выбрав «Перейти».
Можно также нажать клавиши CTRL+G.
-
В поле «Перейти» дважды щелкните именуемый диапазон, который нужно найти.

Примечания:
-
Во всплываемом окне «Перейти» показаны имененные диапазоны на всех книгах.
-
Чтобы перейти к диапазону неименованых ячеек, нажмите CTRL+G, введите диапазон в поле «Ссылка» и нажмите ввод (или кнопку ОК). Поле «Перейти» отслеживает диапазоны по мере их ввода, и вы можете вернуться к любому из них, дважды щелкнув их.
-
Чтобы перейти к ячейке или диапазону на другом листе, введите в поле «Ссылка» следующее: имя листа вместе с восклицательный индекс и абсолютные ссылки на ячейки. Например, лист2!$D $12 для перейти к ячейке, а лист3!$C$12:$F$21 — для перейти к диапазону.
-
В поле «Ссылка» можно ввести несколько именовых диапазонов или ссылок на ячейки. Разделяя каждую из них запятой, например: Price, Typeили B14:C22,F19:G30,H21:H29. Когда вы нажмете ввод или нажмете кнопку«ОК», Excel выделит все диапазоны.
Дополнительные сведения о поиске данных в Excel
-
Поиск или замена текста и чисел на листе
-
Поиск объединенных ячеек
-
Удаление или разрешение циклической ссылки
-
Поиск ячеек, содержащих формулы
-
Поиск ячеек с условным форматированием
-
Поиск скрытых ячеек на листе