Страницы: 1
RSS
Как задать имя выделеному диапазону в VBA
 
Появилась необходимость задать имя выделеному диапазону с помощью VBA. решил воспользоваться макрорекодером и получил следующее:  
 
Range(Selection, Selection.End(xlToRight)).Select  
   Range(Selection, Selection.End(xlDown)).Select  
 
ActiveWorkbook.Names("кодирование").Delete  
   ActiveWorkbook.Names.Add Name:="кодирование", RefersToR1C1:= _  
       "=Заготовительный!R1C1:R3C3"  
 
Первый блок кода выделяет диапазон, а второй должен удалять имя "кодирование", если таковое имеется и присвоить это имя выделенному диапазону. Но как видете макрорекодер дает абсолютную ссылку на диапазон "=Заготовительный!R1C1:R3C3" и в случае если будет добавлена строка или столбец имя будет присваиваться не всему выделеному диапазону а только для "=Заготовительный!R1C1:R3C3"  
знатоки VBA помощи в решении.
 
хотя, конечно, непонятна фраза:  
>дает абсолютную ссылку на диапазон "=Заготовительный!R1C1:R3C3" и в случае если будет добавлена строка или столбец имя будет присваиваться не всему выделеному диапазону а только для "=Заготовительный!R1C1:R3C3"  
Но если естьжелание присвоить имя выделению, то так:  
ActiveWorkbook.Names.Add Name:="кодирование", RefersToR1C1:="=" & Selection.Parent.Name & "!" & Selection.Address(ReferenceStyle:=xlR1C1)
Bite my shiny metal ass!      
 
Огромное спасибо за проявленые телепатические способности))  
Это именно то что нужно. На счет непонятно заданого вопроса, сказываеться мой малый опыт общения с VBA. Впредь постараюсь излагать свои мысли правильно.
 
У меня тоже возникла такая же проблема, но поковырялся в своих старых макросах :) и нашел такой вариант  
Selection.Name = "кодирование"    
Так попроще будет.
Страницы: 1
Читают тему
Наверх