powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Range vs Cells
15 сообщений из 15, страница 1 из 1
Range vs Cells
    #36489846
МавДи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
With ActiveWorkbook '
  With .ActiveSheet.Range(Cells( 1 ,  1 )) '
    .Value =  500 
    .Font.ColorIndex =  3  ' **************
    .Font.Bold = True ' ***************
  End With
End With

не то же самое, что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
With ActiveWorkbook '
  With .ActiveSheet.Range("A1")
    .Value =  500 
    .Font.ColorIndex =  3  ' **************
    .Font.Bold = True ' ***************
  End With
End With

И если второе работает, то первое нет.
...
Рейтинг: 0 / 0
Range vs Cells
    #36489877
Dophin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если с Range работаете через cells, то надо указывать начало и конец диапазона.

в данном случае
.ActiveSheet.Range(Cells(1, 1), Cells(1, 1))
...
Рейтинг: 0 / 0
Range vs Cells
    #36490067
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или сократить:
Код: plaintext
1.
  With .ActiveSheet.Cells( 1 ,  1 ) '
...
Рейтинг: 0 / 0
Range vs Cells
    #36490153
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это типичная ошибка. Для Cells надо тоже указывать родит. объект. (это либо WorkSheet, либо Range)
Т.о. полный формат будет такой:

ActiveWorkbook.ActiveSheet.Range( ActiveWorkbook.ActiveSheet. Cells(1, 1))
...
Рейтинг: 0 / 0
Range vs Cells
    #36490231
Dophin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergeySV,

та Вы что)) и Вы конечно проверили свое утверждение? или для профи это не обязательно?)

а для cells не надо указывать родительский объект, то есть крайне рекомендуется, но можно и без него

просто cells будет ссылаться на активный лист, что в данном случае монописуально.

А вот Ваша конструкция - не рабочая.
...
Рейтинг: 0 / 0
Range vs Cells
    #36490570
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понимаю, то RANGE задается так
expression.Range(Cell1, Cell2)
где
Cell1 - The name of the range. This must be an A1-style reference in the language of the macro
Cell2 - The cell in the upper-left and lower-right corner of the range

и надо либо задавать левый верх, правый низ, либо адрес в виде строки, либо имя диапазона
поэтому если сделать так
Код: plaintext
With .ActiveSheet.Range(Cells( 1 ,  1 ).Address) '
то все будет работать

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Range vs Cells
    #36490676
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Просто добавлю, здесь же на форуме когда давно увидел, вот так еще задается диапазон:
Код: plaintext
activesheet.[a1:a2]
...
Рейтинг: 0 / 0
Range vs Cells
    #36491336
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, проглядел отсутствие второго Cells. Заметил токо когда уже написал ответ. Даже не подумал в начале что народ зациклился на наличие/отсутствие в Range второго Cells - в справке он только так применяется. Править топик уже не стал - на работе запрягли.

А вот про наличие родит. объекта для Cells внутри Range в примерах справки и в инете любят пропускать. В результате с ActiveSheet(как у автора топика) эта конструкция работает, а стоит применить в коде с явным указанием имени листа и отсутствие род. объекта у Cells становится источником очень трудноуловимых ошибок. Сам натыкался на эти грабли. Автору топика для понимая сути объекта Cells будет полезна и эта инфа.
...
Рейтинг: 0 / 0
Range vs Cells
    #36491436
МавДи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Премного всем благодарен. Для меня, это весьма ценная информация.
...
Рейтинг: 0 / 0
Range vs Cells
    #36491641
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeySV... Автору топика для понимая сути объекта Cells будет полезна и эта инфа.
SergeySV, дабы не вводить начинающих коллег в заблуждение, пожалуйста, будьте аккуратнее в формулировках: напомню, что Cells - это свойство объектов Excel (Application, Worksheet, Range), позволяющее задать ссылку на объект Range. К слову, Range также может быть свойством объекта Range (например, Range("C3").Range("D2") возвращает ссылку относительно объекта Range, ссылается на F4).
...
Рейтинг: 0 / 0
Range vs Cells
    #36492821
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthSergeySV, дабы не вводить начинающих коллег в заблуждение, пожалуйста, будьте аккуратнее в формулировках: напомню, что Cells - это свойство объектов Excel (Application, Worksheet, Range),Не вводи начинающих в заблуждение. Это не свойство, а метод.
...
Рейтинг: 0 / 0
Range vs Cells
    #36493009
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlvlthSergeySV, дабы не вводить начинающих коллег в заблуждение, пожалуйста, будьте аккуратнее в формулировках: напомню, что Cells - это свойство объектов Excel (Application, Worksheet, Range),Не вводи начинающих в заблуждение. Это не свойство, а метод.

Ну и ну... Cells - метод... И какое же действие он производит? - гораздо логичнее согласиться, учитывая двойственную природу Cells, с тем, что это - объект. Но формально Cells всё же свойство. Воспользуемся F2:
Object BrowserProperty Cells As Range read-only Member of Excel.Application
Property Cells As Range read-only Member of Excel.Worksheet
Property Cells As Range read-only Member of Excel.Range
До кучи:Intuit.ruCells As Range - возвращает коллекцию ячеек электронной таблицы. Вызванное объектом WorkSheet это свойство возвращает всю таблицу ячеек рабочего листа, которая, конечно, представляет собой объект Range. Поскольку Cells одновременно является объектом Range и коллекцией ячеек, то можно использовать индексы, чтобы добраться до отдельного элемента коллекции - ячейки таблицы. Важным свойством Cells обладают и объекты, стоящие на более низких ступенях иерархии, в частности, им обладает и сам объект Range, что позволяет получить коллекцию ячеек для любой заданной области таблицы.
...
Рейтинг: 0 / 0
Range vs Cells
    #36493651
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthНу и ну... Cells - метод... И какое же действие он производит? - гораздо логичнее согласиться, учитывая двойственную природу Cells, с тем, что это - объект. Но формально Cells всё же свойство. Воспользуемся F2:Мало ли что там написано... Учить ОО по справке Экселя это еще большая глупость чем использовать Эксель в качестве базы данных.

У свойства не бывает параметров. Свойство изображает из себя поле при этом являясь вызовом метода. Cells() с полем спутает только слепой.

А так же Cells() не является объектом, он возвращает объект типа Range, но сам по себе это метод.

Метод не обязан выполнять какие либо действия, метод это функция привязанная к классу.
Но в данном случае, метод Cells() все-же производит кое-какие действия и достаточно только открыть глаза и увидеть параметры - проверку параметров он производит, чтоб ты за границы листа не выскочил.
...
Рейтинг: 0 / 0
Range vs Cells
    #36493771
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМало ли что там написано... Учить ОО по справке Экселя это еще большая глупость чем использовать Эксель в качестве базы данных.
White Owl, сообщите об этом Уокенбаху, Киммелу и прочим авторитетным писателям-программистам, коих более чем достаточно. А то они, понимаешь, не в курсе и вводят в заблуждение начинающих ))
Если серьёзно, то с Вами согласен В.Б. Комягин (есть у меня издание его книги 96 г. "Программирование в Excel5 и Excel7..."). И то - лишь наполовину, поскольку, по его мнению, VBA сам, в зависимости от контекста, определяет, где набор, а где метод (т.е. Cells может являться как коллекцией, так и методом). Поэтому раздел "Методы, которые возвращают объекты", он завершает следующей фразой:
В.Б. Комягин...Таким образом, нет необходимости помнить, что является методом, а что - свойством. Главное представлять себе иерархию объектов...
На этом, думаю, покончим.
...
Рейтинг: 0 / 0
Range vs Cells
    #36493966
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,

Да, давайте закончим.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Range vs Cells
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]