Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Область видимости диапазонов в Excel / 12 сообщений из 12, страница 1 из 1
04.02.2010, 12:55
    #36449328
Ильгиз
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Ситуация такая. Есть excel-файл с несколькими десятками наименованных диапазонов на разных листах. После редактирования файлов диапазоны стали доступны лишь на тех листах, на которых они прописаны, что видно из столбца "Область" диспетчера имен (см. вложение). Если же удалить и создать диапазон вновь, всё становится нормально - область действия "Книга".
В связи с этим вопрос: почему не удается поменять область видимости существующих диапазонов (см. вложение)?
Можно было, конечно, написать VBA-код, который бы удалил и вновь воссоздал существующие диапазоны, но я не нашел нужных команд (как организовать цикл, как обратиться к пространству наименованных диапазонов книги и прочее).
...
Рейтинг: 0 / 0
04.02.2010, 15:19
    #36449858
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Ильгиз,

Если в поле область напротив имени есть название листа, значит это имя будет видно только на данном листе.
Чтобы имя работало глобально, нужно удалить это имя один раз, после этого у вас имя должно остаться в списке, но в поле область уже будет пусто. После этого поправьте адрес на правильный.
...
Рейтинг: 0 / 0
04.02.2010, 15:20
    #36449860
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Djon Player,

Причем для изменения существующего имени используйте кнопку изменить, а затем нажать Ok.
...
Рейтинг: 0 / 0
05.02.2010, 14:06
    #36452041
Ильгиз
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Djon Player,

А можно ли как-нибудь "обновить" все наименованные диапазоны с помошью VBA?
...
Рейтинг: 0 / 0
05.02.2010, 14:20
    #36452082
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
ИльгизDjon Player,

А можно ли как-нибудь "обновить" все наименованные диапазоны с помошью VBA?Смотря что под этим подразумевается.
Я так понимаю, вы хотите, чтобы все именованные диапазоны, которые были ограничены конкретными листами, стали видимыми на всех листах.
В принципе это можно сделать, написать макрос, который к примеру удаляет старое имя и создаёт новое, но уже глобальное.
Правда тут возможно могут возникнуть проблемы.
Например если где-то в формулах используется какое-то имя и это имя бы временно удалим, не испортиться ли при этом формула.
Попробую сейчас что-нибудь намутить, если будут время.

Ещё другая проблема в том, что скорее всего у вас некоторые имена встречаются в двух экземплярах, одно закреплено за конкретным листом, другое такое-же глобальное и у них может отличаться диапазон. Который из диапазонов считать за правильный.
...
Рейтинг: 0 / 0
05.02.2010, 14:23
    #36452089
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Кстати экспериментируя сейчас с именами в Excel 2003, нашёл для себя новую фишку, как вывести список имен, раньше я это делал с помощью своего макроса.

Возможно где-то на форуме это уже писали, но всё равно напишу.
Встаём на чистый лист вашего файла, выделяем к примеру ячейку A1, затем нажимаем кнопку F3, затем нажимаем кнопку "Все имена", в результате в столбце A появится список имён.
...
Рейтинг: 0 / 0
05.02.2010, 15:00
    #36452214
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Напомните кто-нибудь, как Диспетчер имён вызвать в Excel 2003.
И не плохо бы файлик с именами вложить, а то я забыл, как делать имена ограниченные одним листом.
...
Рейтинг: 0 / 0
05.02.2010, 16:03
    #36452395
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Сделал я макрос, смысл его работы такой, он просматривает все имена имеющие видимость лист, добавляет такое-же имя с видимостью книга, а имя с диапазоном листа удаляет.
Т.к. одно и то-же имя может быть одновременно и у книги и ещё и для каждого листа, то в результате в качестве имени диапазона книги будут взяты данные по тому имени, у которого лист имеет максимальный индекс.

Т.к. в ходе работы макроса происходит как удаление, так и добавление имен, то рекомендуется макрос запустить как минимум дважды, иначе могут не все имена обрабатываться.
Можно конечно дальше ещё модифицировать макрос, но пока так.
Перед применением обязательно сохранить свой файл.
Макрос делал в Excel 2007 и проверял соответственно там-же.
В Excel 2003 тоже работает, но правильный ли результат проверить не могу, т.к. не нашёл, как там диспетчер имён вызывать.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Sub Модификация_имен()
 Dim i As Integer
 Dim j As Integer
 Dim kol_listov As Integer
 Dim kol_imen_na_liste As Integer
 Dim a, b
 
 kol_listov = ActiveWorkbook.Worksheets.Count
 
 On Error Resume Next
 
 For i =  1  To kol_listov
  
  kol_imen_na_liste = ActiveWorkbook.Worksheets(i).Names.Count
  
  With ActiveWorkbook.Worksheets(i)
   
    For j =  1  To kol_imen_na_liste
     a = Split(.Names(j).Name, "!")
     
     MsgBox .Names(j).RefersToR1C1
     ActiveWorkbook.Names.Add Name:=a( 1 ), RefersToR1C1:=.Names(j).RefersToR1C1
     ActiveWorkbook.Names(a( 1 )).Comment = .Comments
    
     .Names(j).Delete
    Next j
  End With
 Next i
 
 On Error GoTo  0 

End Sub
...
Рейтинг: 0 / 0
05.02.2010, 16:05
    #36452399
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Забыл удалить лишнюю переменную b
Так что вместо "Dim a, b", достаточно написать "Dim a".
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
23.09.2016, 18:12
    #39314581
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
Djon Player,

Ctrl+F3
...
Рейтинг: 0 / 0
07.10.2016, 10:49
    #39322538
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
час58Djon Player,
Ctrl+F3
...
Рейтинг: 0 / 0
07.10.2016, 10:51
    #39322541
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Область видимости диапазонов в Excel
час58Djon Player,
Ctrl+F3
Ctrl+F3 открывает диспетчер имен.
F3 заполняет ячейки Excel значениями имён и их диапазонами.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Область видимости диапазонов в Excel / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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