2016-11-07 1 views

ответ

0

В Excel существует концепция с именем range, то есть диапазон ячеек, к которому прикреплено имя. Это представлено объектом Name.

RefersToRange метод:

Возвращает Range объект, на который ссылается объект Name.

Например, допустим, что я хочу читать значения только в области печати текущего рабочего листа. Мне нужен объект Name, чтобы получить доступ к области печати, но я ничего не могу с этим поделать; если я хочу сделать что-то полезное у меня есть доступ к диапазону ячеек, указанных под этим именем:

Dim n As Name 
Set n = ActiveWorkbook.Names("Print_Area") 
Dim rng As Range 
Set rng = n.RefersToRange 
Dim values() As Variant 
values = rng 'I can't read values with a Name object, but I can with a Range object 
+0

Я уже проверил msdn и его все еще неясный для меня. Вот почему я опубликовал здесь. Пожалуйста, представьте свой пример и объясните, что происходит. Благодаря! –

+0

@PraveenBehera Обновлено. –

+0

Отлично, он работал благодаря @Zev Spitz –

0

RefersToRange есть, один из многих способов, к «точке» диапазону. Например,

ThisWorkbook.Names("DownloadPictures").RefersToRange = "yes" 

код выше, указывает на диапазон, который может быть клетка, названная «DownloadPictures» и устанавливает его значение «да». В самом деле, я бы предпочел использовать,

ThisWorkbook.range("DownloadPictures").Value = "yes" 

«Имя» в MS Excel аналогична переменной типа Variant, но в отличие от переменных, которые вы «Dim» в коде VB, «Имя 'используется только (или вы можете считать, что он используется только) в книге. «Имя» и переменные не мешают друг другу.

Если вы откроете «Менеджер имен», концепция станет понятной. Имя может быть создано для ссылки на ячейку, диапазон ячейки (диапазон), некоторое значение (так называемое постоянное) или формулу.

Каждый объект Name представляет собой определенное имя для диапазона ячеек. Именами могут быть либо встроенные имена, такие как Database, Print_Area и Auto_Open или пользовательские имена. --- MSDN

Как имя может относиться к диапазону, константе или формуле .RefersToRange конкретно относится к диапазону. И верните false, если не так.

Смежные вопросы