Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно изменить именованный диапазон в Эксель-2007? / 2 сообщений из 2, страница 1 из 1
16.05.2011, 12:42
    #37262429
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно изменить именованный диапазон в Эксель-2007?
Обращаюсь к именованному диапазону в СКЛ-запросе.
Хочу перед этим этот диапазон корректировать программно. Записал макрос:
Код: plaintext
1.
2.
3.
With ThisWorkbook.Names("Data0")
    .Name = "Data0"
    .RefersToR1C1 = Worksheets(Data0Sheet).Range(strStartCell).CurrentRegion.Address
End With
В диспетчере имен этот диапазон есть, но при запуске СЕЛЕКТа выдается ошибка "Объект 'Data0' не найден ядром базы данных MS Jet". А когда меняю именованный диапазон вручную ч-з диспетчер имен, СЕЛЕКТ корректно отрабатывает. Где затык может быть?
...
Рейтинг: 0 / 0
17.05.2011, 03:05
    #37263844
ZVI
ZVI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно изменить именованный диапазон в Эксель-2007?
RefersTo должен быть объектом (диапазоном), а не текстовым значением.
Т.е. в коде достаточно удалить .Address

Вот так получше:
Код: plaintext
1.
2.
Sub Test()
  ThisWorkbook.Names.Add "Data0", Worksheets(Data0Sheet).Range(strStartCell).CurrentRegion
End Sub
Если имени нет, то создаст, а если есть, то переопределит RefersTo.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как программно изменить именованный диапазон в Эксель-2007? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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