Страница 1 из 1
Создание именованного дипазона в VBA
Добавлено: 07 авг 2008, 13:33
AlexZZZ
Добрый день, коллеги!
Подскажите, пожалуйста, как средствами VBA создавать именованные диапазоны и формулы? Например, мне нужно в VBA создать динамический диапазон:
Имя диапазона: "Задачи"
Адрес: =СМЕЩ(Список_задач!$B$2;0;0;СЧЁТЗ(Список_задач!$B:$B)-1;3)
Спасибо!
Re: Создание именованного дипазона в VBA
Добавлено: 07 авг 2008, 13:49
VictorM
AlexZZZ, посмотрите
FAQ | Макросы | Names . Там правда вопросы звучат несколько иначе. Но есть то, что Вам нужно.
Range("A5").Name = "фигня"
Names.Add Name:="фигня", RefersTo:="=$A$5"
Names.Add Name:="фигня", RefersTo:="=Лист1!$A$5"
Names.Add Name:="СуммаНалог", RefersTo:="=SUM(Лист1!$B$5:$B$10)"
Names.Add Name:="СуммаВзятка", RefersToLocal:="=СУММ(Лист1!$C$5:$C$10)"
Re: Создание именованного дипазона в VBA
Добавлено: 07 авг 2008, 15:07
Avsha
Re: Создание именованного дипазона в VBA
Добавлено: 08 авг 2008, 13:40
seergy
ВикторМ привёл хороший пример
Делаю так, например для формы
Private Sub UserForm_Initialize()
'Присвоим имена диапозонам
ActiveWorkbook.Names.Add Name:="Задачи", RefersToR1C1:= _
"=OFFSET(Список_задач!R2C2,0,0,COUNTA(Список_задач!C2)-1,3)"
End Sub
Что это мне даёт:
при удаление имен из книги , ошибки в коде макроса при активации листа, или формы, или книги
смещ диапозоны и что вы видете
=СМЕЩ(Список_задач!#ссылка;0;0;СЧЁТЗ(Список_задач!$B: $B)-1;3)
С уважением...
Re: Создание именованного дипазона в VBA
Добавлено: 08 авг 2008, 14:51
AlexZZZ
Спасибо всем! Суть понятна. Кстати, потребность в таком коде и была вызвана тем, что в не совсем отлаженном приложении, периодически из-за сбоев "пропадали" именованные диапазоны. И, чтобы не восстанавливать всё в ручную, возникла идея при открытии книги удалять и создавать заново все именованные диапазоны.
Re: Создание именованного дипазона в VBA
Добавлено: 08 авг 2008, 14:54
seergy
AlexZZZ писал(а): Кстати, потребность в таком коде и была вызвана тем, что в не совсем отлаженном приложении, периодически из-за сбоев "пропадали" именованные диапазоны. И, чтобы не восстанавливать всё в ручную, возникла идея при открытии книги удалять и создавать заново все именованные диапазоны.
И я протоже....