Как получить имя ячейки в Excele?

Программирование на Visual Basic for Applications
Saper
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 10.02.2003 (Пн) 9:38
Откуда: Russia

Как получить имя ячейки в Excele?

Сообщение Saper » 18.11.2003 (Вт) 12:37

Пишу так:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.name = "name"
MsgBox Target.name
End Sub

При двойном клике имя ячейки меняется на нужное, но возвращается почему-то типа =Лист1!$A$2.
Как при программно получить имя ячейки?

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 18.11.2003 (Вт) 12:56

activecell.row
activecell.column
Ничто так не ограничивает полёт мысли программиста, как компилятор

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.11.2003 (Вт) 13:14

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

Saper
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 10.02.2003 (Пн) 9:38
Откуда: Russia

Сообщение Saper » 18.11.2003 (Вт) 13:18

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

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.11.2003 (Вт) 13:26

Ну, имя активного листа: ActiveSheet.Name
А зачем обязательно знать имя выбранной ячейки, помойму, достаточно адреса:Activecell.Address

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 18.11.2003 (Вт) 13:32

вот так сработает
Target.Name = "name"
MsgBox Target.Name.Name
только name должен быть обя зательно задан а то ошибка :(
Ничто так не ограничивает полёт мысли программиста, как компилятор

Saper
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 10.02.2003 (Пн) 9:38
Откуда: Russia

Сообщение Saper » 18.11.2003 (Вт) 13:38

Я не знаю заране, для каких ячеек понадобится расшифровка, а по имени это можно было бы определить.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.11.2003 (Вт) 13:41

Ну тогда я предлагаю сделать функцию:

Код: Выделить всё

Function ActivecellName()
s = ""
On Error Resume Next
s = ActiveCell.Name.Name
ActivecellName = s

End Function


RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 18.11.2003 (Вт) 13:48

А что, просто
Код: Выделить всё
Код:
Function ActivecellName()
On Error Resume Next
ActivecellName = ActiveCell.Name.Name
End Function


Не пойдет? :?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.11.2003 (Вт) 13:50

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

Saper
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 10.02.2003 (Пн) 9:38
Откуда: Russia

Сообщение Saper » 18.11.2003 (Вт) 13:52

О, то что надо :D

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.11.2003 (Вт) 13:56

Надо говорить спасибо, всем тем, кто помог :P

Saper
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 10.02.2003 (Пн) 9:38
Откуда: Russia

Сообщение Saper » 18.11.2003 (Вт) 14:48

ОГРО-О-ОМНОЕ спасибо :wink:


Вернуться в VBA

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

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

    TopList