Страницы: 1
RSS
Установить объект как Range - объясните, пожалуйста
 
Доброго времени суток, уважаемые!  
Будьте добры, пролейте свет знания на следующий мой вопрос:  
В коде пишу инструкцию:  
 
Set MyRange = Worksheets("MyList").Range("D4:J4")  
 
И все замечательно. Хорошо, но что делать, если я правой границы Range не знаю?  
Лезу в хелп, читаю, рожаю такую конструкцию:  
 
Set MyRange = Worksheets("MyList").Range("D4", Range("D4").End(xlToRight)).Select  
 
И начинается ошибка при отладке.  
Ошибка пропадает, если предварительно активизировать рабочий лист с именем "MyList"  
Аналогично если определять Range через Cells, например (i- переменная для номер столбца, ищется в коде заранее, определена как Integer, не может быть больше 100):  
 
Set MyRange = Worksheets ("MyList").Range(Cells(4,4), Cells(4, i)) - тоже самое, необходимо сначала активизировать лист.  
 
Собственно, вопрос: почему в первом случае "установка" объекта проходила на ура без всякой активации листа в коде, а во втором необходима лишняя пляска с бубном (строка кода, активизирующая лист)?  
 
Извините за может быть "простейший" вопрос - но книжки/справочника под рукой нет, в хелпе не вижу в упор подобного. В хелпе не описано отличие обращения к Range через Range("A1") от Range(cells(1,1).  
Спасибо за внимание.
Кому решение нужно - тот пример и рисует.
 
Извините, поправочка. Вторая строка примера выглядит так:  
Set MyRange = Worksheets("MyList").Range("D4", Range("D4").End(xlToRight))
Кому решение нужно - тот пример и рисует.
 
Спасибо большое!
Кому решение нужно - тот пример и рисует.
Страницы: 1
Наверх