Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/как перейти на ячейку вправо(или влево) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как перейти на ячейку вправо(или влево) (Макросы/Sub)
как перейти на ячейку вправо(или влево)
Ded George Дата: Понедельник, 10.11.2014, 17:25 | Сообщение № 1
Группа: Гости
Люди добрые, подскажите, как перейти на ячейку вправо(или влево) :'(
Делаю через
Стр = ActiveCell.Row
Кол = ActiveCell.Column (в Watch эта переменная - число, поэтому
потом после ее подстановки в Range(Кол+1, Стр).Select комп ругается на синтаксис.
Переход по такому же принципу по строкам проходит на ура, а вот со столбцами проблема.
Извиняйте, если туповат. %)
 
Ответить
СообщениеЛюди добрые, подскажите, как перейти на ячейку вправо(или влево) :'(
Делаю через
Стр = ActiveCell.Row
Кол = ActiveCell.Column (в Watch эта переменная - число, поэтому
потом после ее подстановки в Range(Кол+1, Стр).Select комп ругается на синтаксис.
Переход по такому же принципу по строкам проходит на ура, а вот со столбцами проблема.
Извиняйте, если туповат. %)

Автор - Ded George
Дата добавления - 10.11.2014 в 17:25
buchlotnik Дата: Понедельник, 10.11.2014, 17:47 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
файл примера в студию. да и код по правилам оформите


Сообщение отредактировал buchlotnik - Понедельник, 10.11.2014, 18:04
 
Ответить
Сообщениефайл примера в студию. да и код по правилам оформите

Автор - buchlotnik
Дата добавления - 10.11.2014 в 17:47
SkyPro Дата: Понедельник, 10.11.2014, 18:09 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
[vba]
Код

activecell.offset(1,0) - смещение вниз на одну строку
activecell.offset(0,1) - смещение вправо на один столбец
activecell.offset(-1,0) - смещение вверх на одну строку
activecell.offset(0,-1) - смещение влево на один столбец
[/vba]
Или вместо Range используйте Cell


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 10.11.2014, 18:10
 
Ответить
Сообщение[vba]
Код

activecell.offset(1,0) - смещение вниз на одну строку
activecell.offset(0,1) - смещение вправо на один столбец
activecell.offset(-1,0) - смещение вверх на одну строку
activecell.offset(0,-1) - смещение влево на один столбец
[/vba]
Или вместо Range используйте Cell

Автор - SkyPro
Дата добавления - 10.11.2014 в 18:09
RAN Дата: Понедельник, 10.11.2014, 18:33 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Cells(Стр, Кол+1).Select
[/vba]
не будет


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Cells(Стр, Кол+1).Select
[/vba]
не будет

Автор - RAN
Дата добавления - 10.11.2014 в 18:33
Ded George Дата: Четверг, 13.11.2014, 17:45 | Сообщение № 5
Группа: Гости
Спасибо всем, кто откликнулся!!!
Особый респект RAN!!!
Cells(Стр, Кол+1).Select - (вместо Range......) - ЭТО ТО, ЧТО НАДО!
Кстати, какая разница между Cells и Range?
 
Ответить
СообщениеСпасибо всем, кто откликнулся!!!
Особый респект RAN!!!
Cells(Стр, Кол+1).Select - (вместо Range......) - ЭТО ТО, ЧТО НАДО!
Кстати, какая разница между Cells и Range?

Автор - Ded George
Дата добавления - 13.11.2014 в 17:45
AndreTM Дата: Четверг, 13.11.2014, 20:14 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
какая разница между Cells и Range?
А хелп слабО почитать? :)

Range - это свойство (property) некоего объекта, возвращающее некий диапазон (возможно, мультинабор) ячеек. Параметром является ИМЯ диапазона в нотации макроязыка (как в формулах листа). Или два параметра - задающие углы диапазона. В нотации макроязыка. Что аналогично использованию параметра-объекта в коде VBA.

Cells - это свойство только листа или диапазона (а Application.Cells=ActiveSheet.Cells), позволяющее обратиться к диапазону ячеек именно этого объекта (листа или диапазона) по индексу строки/столбца. Cells позволяет обратиться к ячейке по индексу, НО - только потому, что таково дефолтное свойство диапазона: .Cells(x,y)==.Range.Item(x,y). С другой стороны, можно вызвать .Range(.Cells(...)[,.Cells(...)]) - опять же, только потому, что Cells() возвращает именно объект-диапазон.

Ну и не забывайте, что использование Range и Cells без квалификатора принадлежности объекту - требует очень сильного самоконтроля и отличного знания объектной модели (про что обычно забывают многие "пейсатели" руководств) :D С другой стороны, точное понимание взаимодействия свойств объектной модели - это один из признаков хорошего программера на любом объектном языке.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
какая разница между Cells и Range?
А хелп слабО почитать? :)

Range - это свойство (property) некоего объекта, возвращающее некий диапазон (возможно, мультинабор) ячеек. Параметром является ИМЯ диапазона в нотации макроязыка (как в формулах листа). Или два параметра - задающие углы диапазона. В нотации макроязыка. Что аналогично использованию параметра-объекта в коде VBA.

Cells - это свойство только листа или диапазона (а Application.Cells=ActiveSheet.Cells), позволяющее обратиться к диапазону ячеек именно этого объекта (листа или диапазона) по индексу строки/столбца. Cells позволяет обратиться к ячейке по индексу, НО - только потому, что таково дефолтное свойство диапазона: .Cells(x,y)==.Range.Item(x,y). С другой стороны, можно вызвать .Range(.Cells(...)[,.Cells(...)]) - опять же, только потому, что Cells() возвращает именно объект-диапазон.

Ну и не забывайте, что использование Range и Cells без квалификатора принадлежности объекту - требует очень сильного самоконтроля и отличного знания объектной модели (про что обычно забывают многие "пейсатели" руководств) :D С другой стороны, точное понимание взаимодействия свойств объектной модели - это один из признаков хорошего программера на любом объектном языке.

Автор - AndreTM
Дата добавления - 13.11.2014 в 20:14
RAN Дата: Четверг, 13.11.2014, 20:37 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
AndreTM, hands hands
Ну ты и завернул.
Три раза прочитал - не понял. На пятый вроде стало доходить. :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеAndreTM, hands hands
Ну ты и завернул.
Три раза прочитал - не понял. На пятый вроде стало доходить. :D

Автор - RAN
Дата добавления - 13.11.2014 в 20:37
AndreTM Дата: Четверг, 13.11.2014, 20:50 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Ну ты и завернул
Каков вопрос - таков и ответ :)
Просто
какая разница между Cells и Range
приблизительно из той же серии, что и вопрос "какова разница между первым и третьим в святой троице". Объяснять Пришедшему надо так, чтобы мозги сразу съехали, и он проникся...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Ну ты и завернул
Каков вопрос - таков и ответ :)
Просто
какая разница между Cells и Range
приблизительно из той же серии, что и вопрос "какова разница между первым и третьим в святой троице". Объяснять Пришедшему надо так, чтобы мозги сразу съехали, и он проникся...

Автор - AndreTM
Дата добавления - 13.11.2014 в 20:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как перейти на ячейку вправо(или влево) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!