Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 00:01   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Обращение к переменной активной книге из xla файла

В активной книге есть переменная "Адрес" со значением:
="г.Саратов"

Если в активной книге написать код
Код:
x=[Адрес]
x принимает значение "г.Саратов"
Если в xla книге насписать
Код:
x=activeworkbook.Names("Адрес").Value
x принимает значение "="г.Саратов""

Как в xla файле получить x значение "г.Саратов"?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 24.05.2010, 11:04   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

А что, Replace и Mid уже не работают?
Код:
x=Replace(activeworkbook.Names("Адрес").Value,"=","")
x=Mid$(activeworkbook.Names("Адрес").Value,2)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 24.05.2010, 12:39   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
А что, Replace и Mid уже не работают?
Код:
x=Replace(activeworkbook.Names("Адрес").Value,"=","")
x=Mid$(activeworkbook.Names("Адрес").Value,2)
По этим командам в обоих случаях x=""г.Саратов"".... :(( То есть адрес остается в ковычках. Не уж-то еще химичить с len... :((
С уважением, Алексей.

Последний раз редактировалось tae1980; 24.05.2010 в 12:54.
tae1980 вне форума Ответить с цитированием
Старый 24.05.2010, 13:33   #4
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
По этим командам в обоих случаях x=""г.Саратов"".... ( То есть адрес остается в ковычках. Не уж-то еще химичить с len... (
А функция ДУМАТЬ у Вас включена?

Код:
x=Replace(Replace(activeworkbook.Names("Адрес").Value,"""",""),"=","")

или
x=Replace(Replace(activeworkbook.Names("Адрес").Value,Chr(34),""),"=","")
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 24.05.2010, 22:05   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
А функция ДУМАТЬ у Вас включена?
Код:
x=Replace(Replace(activeworkbook.Names("Адрес").Value,"""",""),"=","")
или
x=Replace(Replace(activeworkbook.Names("Адрес").Value,Chr(34),""),"=","")
Спасибо.
Это все из категории "маленькие хитрости". Просто я думал что должен быть другой способ.... Но раз его все же похоже нет, будем использовать то что есть.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 24.05.2010, 22:14   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А если без хитростей - то так:

Код:
Sub test()    ' запускал из надстройки XLA
    ' вариант 1
    x = [Адрес]
    Debug.Print x
    ' вариант 2
    x = Application.Evaluate(ActiveWorkbook.Names("Адрес").Value)
    Debug.Print x
End Sub
Оба варианта возвращают г.Саратов
EducatedFool вне форума Ответить с цитированием
Старый 24.05.2010, 22:14   #7
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Вот Вам хитрость:
x=Range("Адрес").Value
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 27.05.2010, 11:18   #8
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А если без хитростей - то так:
Код:
Sub test()    ' запускал из надстройки XLA
    ' вариант 1
    x = [Адрес]
    Debug.Print x
    ' вариант 2
    x = Application.Evaluate(ActiveWorkbook.Names("Адрес").Value)
    Debug.Print x
End Sub
Оба варианта возвращают г.Саратов
Да действительно... Спасибо!!!
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к переменной через другую переменную tae1980 Microsoft Office Excel 2 22.03.2010 00:52
Взять имя переменной из файла и присвоить ей значение ZaRDaK Помощь студентам 1 11.11.2009 00:33
Переменной присвоить имя файла komar73 Microsoft Office Excel 4 26.03.2009 15:20
Обращение к строке внутри файла AlexeyLed Общие вопросы C/C++ 3 04.03.2009 19:53
задать значение переменной в только что макросом открытой книге tolikman Microsoft Office Excel 2 17.10.2008 16:35