Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как вызвать переменную из Диспетчера имен - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вызвать переменную из Диспетчера имен (Макросы/Sub)
Как вызвать переменную из Диспетчера имен
Vertep7 Дата: Воскресенье, 28.01.2024, 14:00 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте. Подскажите как вызвать переменную из Диспетчера имен. Прошерстил весь интернет но ничего рабочего не нашел, только наоборот все не рабочее. Необходимо что бы именованный диапазон (как я понимаю так называют эту переменную) передавал свое значение в макрос.
Набросал пример, вроде как пишут что подобный вариант должен выполнять эту манипуляцию, но он выдает ошибку.
[vba]
Код
Sub Пример()
Dim Темп As Variant
Set Темп = ThisWorkbook.Names("Темп1").RefersToRange ' использование переменной из Диспетчера имен
MsgBox Темп
End Sub
[/vba]
К сообщению приложен файл: primer.xlsm (18.2 Kb)
 
Ответить
СообщениеЗдравствуйте. Подскажите как вызвать переменную из Диспетчера имен. Прошерстил весь интернет но ничего рабочего не нашел, только наоборот все не рабочее. Необходимо что бы именованный диапазон (как я понимаю так называют эту переменную) передавал свое значение в макрос.
Набросал пример, вроде как пишут что подобный вариант должен выполнять эту манипуляцию, но он выдает ошибку.
[vba]
Код
Sub Пример()
Dim Темп As Variant
Set Темп = ThisWorkbook.Names("Темп1").RefersToRange ' использование переменной из Диспетчера имен
MsgBox Темп
End Sub
[/vba]

Автор - Vertep7
Дата добавления - 28.01.2024 в 14:00
Pelena Дата: Воскресенье, 28.01.2024, 14:17 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19137
Репутация: 4409 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
У Вас именованная формула, а не диапазон. Попробуйте так
[vba]
Код
Sub Пример()
    Dim Темп As Variant
    Темп = Evaluate(ThisWorkbook.Names("Темп1").RefersTo)    ' использование переменной из Диспетчера имен
    MsgBox Темп
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
У Вас именованная формула, а не диапазон. Попробуйте так
[vba]
Код
Sub Пример()
    Dim Темп As Variant
    Темп = Evaluate(ThisWorkbook.Names("Темп1").RefersTo)    ' использование переменной из Диспетчера имен
    MsgBox Темп
End Sub
[/vba]

Автор - Pelena
Дата добавления - 28.01.2024 в 14:17
Vertep7 Дата: Воскресенье, 28.01.2024, 15:02 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Попробуйте так

Спасибо, все заработало так как нужно)
 
Ответить
Сообщение
Попробуйте так

Спасибо, все заработало так как нужно)

Автор - Vertep7
Дата добавления - 28.01.2024 в 15:02
Gustav Дата: Воскресенье, 28.01.2024, 16:51 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2652
Репутация: 1114 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
На заметку. Мощь функции Evaluate заключается в том, что в ней можно сразу использовать:
* либо имя из Диспетчера имен:
[vba]
Код
Темп = Evaluate("=Темп1") ' использование переменной из Диспетчера имен
[/vba]
* либо содержимое его поля RefersTo, т.е. формулу "как на рабочем листе" (только в международном американском написании):
[vba]
Код
Темп = Evaluate("=SUM(Лист1!$A$1:$E$1)")
[/vba]
Начальный знак "=" не является обязательным, но он визуально подчеркивает "формульную сущность" выражений.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНа заметку. Мощь функции Evaluate заключается в том, что в ней можно сразу использовать:
* либо имя из Диспетчера имен:
[vba]
Код
Темп = Evaluate("=Темп1") ' использование переменной из Диспетчера имен
[/vba]
* либо содержимое его поля RefersTo, т.е. формулу "как на рабочем листе" (только в международном американском написании):
[vba]
Код
Темп = Evaluate("=SUM(Лист1!$A$1:$E$1)")
[/vba]
Начальный знак "=" не является обязательным, но он визуально подчеркивает "формульную сущность" выражений.

Автор - Gustav
Дата добавления - 28.01.2024 в 16:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как вызвать переменную из Диспетчера имен (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!