Приветствую!
Можно ли в формулах ячеек одного листа ссылаться на именованный диапазон другого листа, причем этот именованный диапазон - уровня "листа" ?
И можно ли именованный диапазон уровня листа переделать кодом VBA в именованный диапазон уровня книги?
Excel. Обращение к именованным диапазонам
Модератор: Naeel Maqsudov
=ИНДЕКС(Другой_Лист!Temp_Name;1;1)Можно ли в формулах ячеек одного листа ссылаться на именованный диапазон другого листа, причем этот именованный диапазон - уровня "листа" ?

А еще вопрос...
есть именованный диапазон Name_r1 (A1:A10)
в VBA пишу такой код...
Как мне теперь получить имя именованного диапазона, имея на входе уже диапазон r1 ?
r1.???
есть именованный диапазон Name_r1 (A1:A10)
в VBA пишу такой код...
Код: Выделить всё
Dim r1 As Range
Set r1 = Range("Name_r1")
или
Set r1 = Range("Name_r2")
или
Set r1 = Range("Name_r3")
Как мне теперь получить имя именованного диапазона, имея на входе уже диапазон r1 ?
r1.???
- Aent
- Сообщения: 1129
- Зарегистрирован: 01 окт 2006, 14:52
- Откуда: Saratov,Russia
- Контактная информация:
Avsha,
Боюсь что только проходя в цикле по таблице имён и сравнивая ассоциированные с именами
адреса рангов
Cправа в присваивании стоит выражение. Вы же могли написать
Set r1 = Range("Name_r1").Cells(1)
и какое это имя ?
Боюсь что только проходя в цикле по таблице имён и сравнивая ассоциированные с именами
адреса рангов

Cправа в присваивании стоит выражение. Вы же могли написать
Set r1 = Range("Name_r1").Cells(1)
и какое это имя ?
Андрей Энтелис,
aentelis.livejournal.com
aentelis.livejournal.com
Aent, вы правы, так и сделал.
ведь список имен хранит книга - как справочник соответсявия имени и адреса диапазона, а не сам диапазон
вот двойным щелчком щелкаю по любой ячейке листа
и она выдает имя если ячейка - именованный диапазон
ведь список имен хранит книга - как справочник соответсявия имени и адреса диапазона, а не сам диапазон

вот двойным щелчком щелкаю по любой ячейке листа
и она выдает имя если ячейка - именованный диапазон

Код: Выделить всё
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox (GetNameOfRagne(Target))
Cancel = True
End Sub
Код: Выделить всё
Public Function GetNameOfRagne(r1 As Range) As String
Dim tempf As String
GetNameOfRagne = ""
' Получение имени Name заданного диапазона в текущей активной книге
Dim iName As Name
For Each iName In Application.ActiveWorkbook.Names
If InStr(1, iName.Value, "!", vbTextCompare) <> 0 Then
tempf = Right(iName.Value, Len(iName.Value) - InStr(1, iName.Value, "!", vbTextCompare))
Else
tempf = iName.Value
End If
If tempf = r1.Cells(1, 1).AddressLocal Then GetNameOfRagne = iName.Name: Exit Function
Next
End Function