Добрый день, коллеги!
Подскажите, пожалуйста, как средствами VBA создавать именованные диапазоны и формулы? Например, мне нужно в VBA создать динамический диапазон:
Имя диапазона: "Задачи"
Адрес: =СМЕЩ(Список_задач!$B$2;0;0;СЧЁТЗ(Список_задач!$B:$B)-1;3)
Спасибо!
Создание именованного дипазона в VBA
Модератор: Naeel Maqsudov
- VictorM
- Сообщения: 794
- Зарегистрирован: 23 окт 2006, 01:44
- Откуда: Lugansk, Ukraine
- Контактная информация:
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)"
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
научите их ловить рыбу - и вы накормите их на всю жизнь".
ВикторМ привёл хороший пример
Делаю так, например для формы
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)
С уважением...
Делаю так, например для формы
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)
С уважением...
Спасибо всем! Суть понятна. Кстати, потребность в таком коде и была вызвана тем, что в не совсем отлаженном приложении, периодически из-за сбоев "пропадали" именованные диапазоны. И, чтобы не восстанавливать всё в ручную, возникла идея при открытии книги удалять и создавать заново все именованные диапазоны.
AlexZZZ писал(а): Кстати, потребность в таком коде и была вызвана тем, что в не совсем отлаженном приложении, периодически из-за сбоев "пропадали" именованные диапазоны. И, чтобы не восстанавливать всё в ручную, возникла идея при открытии книги удалять и создавать заново все именованные диапазоны.
И я протоже....