Дата: Понедельник, 10.11.2014, 17:25 |
Сообщение № 1
Группа: Гости
Люди добрые, подскажите, как перейти на ячейку вправо(или влево) Делаю через Стр = ActiveCell.Row Кол = ActiveCell.Column (в Watch эта переменная - число, поэтому потом после ее подстановки в Range(Кол+1, Стр).Select комп ругается на синтаксис. Переход по такому же принципу по строкам проходит на ура, а вот со столбцами проблема. Извиняйте, если туповат.
Люди добрые, подскажите, как перейти на ячейку вправо(или влево) Делаю через Стр = ActiveCell.Row Кол = ActiveCell.Column (в Watch эта переменная - число, поэтому потом после ее подстановки в Range(Кол+1, Стр).Select комп ругается на синтаксис. Переход по такому же принципу по строкам проходит на ура, а вот со столбцами проблема. Извиняйте, если туповат. Ded George
activecell.offset(1,0) - смещение вниз на одну строку activecell.offset(0,1) - смещение вправо на один столбец activecell.offset(-1,0) - смещение вверх на одну строку activecell.offset(0,-1) - смещение влево на один столбец
[/vba] Или вместо Range используйте Cell
[vba]
Код
activecell.offset(1,0) - смещение вниз на одну строку activecell.offset(0,1) - смещение вправо на один столбец activecell.offset(-1,0) - смещение вверх на одну строку activecell.offset(0,-1) - смещение влево на один столбец
Спасибо всем, кто откликнулся!!! Особый респект RAN!!! Cells(Стр, Кол+1).Select - (вместо Range......) - ЭТО ТО, ЧТО НАДО! Кстати, какая разница между Cells и Range?
Спасибо всем, кто откликнулся!!! Особый респект RAN!!! Cells(Стр, Кол+1).Select - (вместо Range......) - ЭТО ТО, ЧТО НАДО! Кстати, какая разница между Cells и Range?Ded George
Range - это свойство (property) некоего объекта, возвращающее некий диапазон (возможно, мультинабор) ячеек. Параметром является ИМЯ диапазона в нотации макроязыка (как в формулах листа). Или два параметра - задающие углы диапазона. В нотации макроязыка. Что аналогично использованию параметра-объекта в коде VBA.
Cells - это свойство только листа или диапазона (а Application.Cells=ActiveSheet.Cells), позволяющее обратиться к диапазону ячеек именно этого объекта (листа или диапазона) по индексу строки/столбца. Cells позволяет обратиться к ячейке по индексу, НО - только потому, что таково дефолтное свойство диапазона: .Cells(x,y)==.Range.Item(x,y). С другой стороны, можно вызвать .Range(.Cells(...)[,.Cells(...)]) - опять же, только потому, что Cells() возвращает именно объект-диапазон.
Ну и не забывайте, что использование Range и Cells без квалификатора принадлежности объекту - требует очень сильного самоконтроля и отличного знания объектной модели (про что обычно забывают многие "пейсатели" руководств) С другой стороны, точное понимание взаимодействия свойств объектной модели - это один из признаков хорошего программера на любом объектном языке.
Range - это свойство (property) некоего объекта, возвращающее некий диапазон (возможно, мультинабор) ячеек. Параметром является ИМЯ диапазона в нотации макроязыка (как в формулах листа). Или два параметра - задающие углы диапазона. В нотации макроязыка. Что аналогично использованию параметра-объекта в коде VBA.
Cells - это свойство только листа или диапазона (а Application.Cells=ActiveSheet.Cells), позволяющее обратиться к диапазону ячеек именно этого объекта (листа или диапазона) по индексу строки/столбца. Cells позволяет обратиться к ячейке по индексу, НО - только потому, что таково дефолтное свойство диапазона: .Cells(x,y)==.Range.Item(x,y). С другой стороны, можно вызвать .Range(.Cells(...)[,.Cells(...)]) - опять же, только потому, что Cells() возвращает именно объект-диапазон.
Ну и не забывайте, что использование Range и Cells без квалификатора принадлежности объекту - требует очень сильного самоконтроля и отличного знания объектной модели (про что обычно забывают многие "пейсатели" руководств) С другой стороны, точное понимание взаимодействия свойств объектной модели - это один из признаков хорошего программера на любом объектном языке.AndreTM
приблизительно из той же серии, что и вопрос "какова разница между первым и третьим в святой троице". Объяснять Пришедшему надо так, чтобы мозги сразу съехали, и он проникся...
приблизительно из той же серии, что и вопрос "какова разница между первым и третьим в святой троице". Объяснять Пришедшему надо так, чтобы мозги сразу съехали, и он проникся...AndreTM