Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужен список ВСЕХ RangesName на конкретном листе / 6 сообщений из 6, страница 1 из 1
26.01.2015, 17:54
    #38863551
RegisteredUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
Коллеги!
появилась необходимость получения ВСЕХ rangesname с конкретного листа.

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

Код: vbnet
1.
2.
3.
4.
5.
6.
 
Dim myName As Name

For Each myName In ActiveWorkbook.Names
  ...
Next



в общем помогите советом:
как ГАРАНТИРОВАННО получить список ВСЕХ rangesname с определенного листа workbook?
...
Рейтинг: 0 / 0
26.01.2015, 18:14
    #38863577
W_I_N_T_E_R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
мне когда-то так помогли:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Перебрать_имена()
Dim n As Name
Dim Count As Integer
For Each n In ActiveWorkbook.Names
If n.Visible or Not n.Visible Then
Count = Count + 1
End If
Next n
MsgBox "Всего имен в книге " & Count
End Sub
...
Рейтинг: 0 / 0
10.03.2015, 01:17
    #38899267
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
W_I_N_T_E_R,

только если с книги:
Код: vbnet
1.
2.
3.
For Each rT In ThisWorkbook.Names
    Debug.Print rT.NameLocal, rT.Value
Next


по сути между "=" и "!" -имя листа, если нужно с одного листа.
а о гарантированности сам суди.. :-)
...
Рейтинг: 0 / 0
10.03.2015, 16:20
    #38900201
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
W_I_N_T_E_R
Код: vbnet
1.
If n.Visible or Not n.Visible Then

Вообще нафиг не нужная строка. Т.к. подсчитывает все имена, не зависимо от видимости. Так что отсутствие данного условия на результат не повлияет.
...
Рейтинг: 0 / 0
10.03.2015, 23:08
    #38900552
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
RegisteredUserкак ГАРАНТИРОВАННО получить список ВСЕХ rangesname с определенного листа workbook?Хм... а если имя определено на Лист1 (Ctrl+F3, область=Лист1), а ссылается оно на диапазон на Лист2 - это имя с какого из этих листов?
Вот примерный код для анализа имен:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub NamesOfWs()
Dim ws As Worksheet, n As Name, r As Range
Set ws = ActiveWorkbook.Worksheets("Лист1")         'будем искать имена, ссылающиеся на диапазоны этого листа
  On Error Resume Next
  For Each n In ActiveWorkbook.Names
    Set r = n.RefersToRange
    If Err Then                                     'имя не ссылается на диапазон, напр. имя-функция
      Err.Clear
    ElseIf r.Worksheet Is ws Then                   'диапазон на этом листе
      Debug.Print n.Name, n.RefersToLocal, n.Visible
    End If
  Next
End Sub
...
Рейтинг: 0 / 0
11.03.2015, 10:49
    #38900866
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен список ВСЕХ RangesName на конкретном листе
Казанский,

Алексей, речь про имя имени. Только равно здесь упомянуто напрасно, т.к отсутствует в имени. Если в нем фигурирует имя листа - то это имя того листа, в области действия которого это имя задано. Т.е. если имя определено на Лист1, а ссылается на Лист2 - то имя будет выглядеть:
Лист1!_sh1
где _sh1 - это непосредственно заданное имя.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужен список ВСЕХ RangesName на конкретном листе / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]