powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужен список ВСЕХ RangesName на конкретном листе
6 сообщений из 6, страница 1 из 1
Нужен список ВСЕХ RangesName на конкретном листе
    #38863551
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги!
появилась необходимость получения ВСЕХ 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
Нужен список ВСЕХ RangesName на конкретном листе
    #38863577
Фотография W_I_N_T_E_R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне когда-то так помогли:
Код: 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
Нужен список ВСЕХ RangesName на конкретном листе
    #38899267
Bobgos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Нужен список ВСЕХ RangesName на конкретном листе
    #38900201
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
W_I_N_T_E_R
Код: vbnet
1.
If n.Visible or Not n.Visible Then

Вообще нафиг не нужная строка. Т.к. подсчитывает все имена, не зависимо от видимости. Так что отсутствие данного условия на результат не повлияет.
...
Рейтинг: 0 / 0
Нужен список ВСЕХ RangesName на конкретном листе
    #38900552
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Нужен список ВСЕХ RangesName на конкретном листе
    #38900866
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

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


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