Excel: Проблема с использованием имен в VBA

Программирование на Visual Basic for Applications
dimonbk
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.01.2006 (Вт) 14:57

Excel: Проблема с использованием имен в VBA

Сообщение dimonbk » 31.07.2009 (Пт) 7:40

Доброго времени суток! В диспетчере имен создаю имя "ColumnCell" с формулой "=СТОЛБЕЦ(Лист1$A$1)", т.е. имя возвращает не диапазон, а конкретное значение. Вопрос в том, чем мне в VBA выхватить это значение из имени. Если бы имя возвращало диапазон, то в макросе я бы написал следующий код: "Range("ColumnCell").Column" и узнал бы номер столбца, на ячейку которого ссылается имя. В данной же ситуации, когда имя возвращает не диапазон, а значение, выражение "Range("ColumnCell")" возвращает ошибку. Как решить этот вопрос, помогите плиз! Заранее спасибо
Все будет хорошо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Excel: Проблема с использованием имен в VBA

Сообщение alibek » 01.08.2009 (Сб) 8:08

Names
Lasciate ogni speranza, voi ch'entrate.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Excel: Проблема с использованием имен в VBA

Сообщение viter.alex » 01.08.2009 (Сб) 8:47

Код: Выделить всё
Application.Evaluate([ColumnCell])
Лучше день потерять — потом за пять минут долететь!

dimonbk
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.01.2006 (Вт) 14:57

Re: Excel: Проблема с использованием имен в VBA

Сообщение dimonbk » 02.08.2009 (Вс) 21:54

alibek писал(а):Names

Извини, не мог бы пояснить по конкретнее
Все будет хорошо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Excel: Проблема с использованием имен в VBA

Сообщение alibek » 03.08.2009 (Пн) 11:18

ActiveWorkbook.Names("test").RefersToRange
Lasciate ogni speranza, voi ch'entrate.

dimonbk
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.01.2006 (Вт) 14:57

Re: Excel: Проблема с использованием имен в VBA

Сообщение dimonbk » 03.08.2009 (Пн) 13:01

alibek писал(а):ActiveWorkbook.Names("test").RefersToRange

Так не получается (выдает ошибку), вот что в справке написано по этому поводу: "If the Name object doesn't refer to a range (for example, if it refers to a constant or a formula), this property fails.". Может ты что другое имел ввиду, просто как то не верится что ты можешь ошибиться.
Все будет хорошо

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Excel: Проблема с использованием имен в VBA

Сообщение alibek » 03.08.2009 (Пн) 13:21

Значит посмотри остальные свойства, начинающиеся с Refer.
Lasciate ogni speranza, voi ch'entrate.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Re: Excel: Проблема с использованием имен в VBA

Сообщение KL » 09.08.2009 (Вс) 4:43

Проблема в помимо всего прочего еще и в том, что фуннкция СТОЛБЕЦ() возвращает не просто числовое значение, а массив, даже если в нем всего один элемент :-)

Код: Выделить всё
Sub test()
    x = Evaluate("ColumnCell")(1)
    y = [INDEX(ColumnCell,1)]
    z = Evaluate(ThisWorkbook.Names("ColumnCell").RefersTo)(1)
End Sub
Привет,
KL


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList