Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Как проверить ячейку в Excel на имя?


Автор: gavrilich 24.7.2007, 10:49
Ситуация такая: у меня есть документ Excel, в нем множество ячеек среди которых есть именованные т.е. с именами которые задаются в левом верхнем углу (при клике по ячейке там отображаются координаты, но если есть потребность можно ввести свое имя). При обработке события

Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  
if имя_ячейки = "MyCell" then 

actions

end if

End Sub  

мне нужно проверить нажата ли ячейка с моим именем, все мои попытки вытащить имя и проверить его не помогли.
Свойство Target.Name возвращает имя в формате Имя листа + имя ячейки, а мне нужно чтоб возвращалось имя которое я ввел для определенной ячейки потому что документ который я буду обрабатывать будет каждый раз меняться и привязываться к координатам ячейки я не могу.

Помогите, буду благодарен. 

Автор: mihanik 24.7.2007, 21:18
Хм...

В открытой рабочей книге есть коллекция именованых областей.
Т.е. тебе нужно при смене выделенной области сделать следующее

1. Узнать точный адрес выделенной области
2. Перебрать коллекцию именованных областей и определить, входит данная область в коллекцию или нет

Привожу пример кода, который помогает просмотреть все именованные области в книге...

Код

Private Sub CommandButton1_Click()
Dim MyName As Integer

    MsgBox "Найдено именованых областей: " & ActiveWorkbook.Names.Count
    For MyName = 1 To ActiveWorkbook.Names.Count
        MsgBox "  Имя: " & ActiveWorkbook.Names.Item(MyName).Name & vbCrLf & _
               "Адрес: " & ActiveWorkbook.Names.Item(MyName).RefersTo
    Next MyName
        
        
End Sub


Немного переделав, сможешь решить свою задачу.

ЗЫ.
Слово "коллекция" не совсем точное для этого термина, но... И так всё понятно.

Автор: gavrilich 25.7.2007, 10:40
спасибо думаю это поможет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)