Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Применение метода Select в VBA / 13 сообщений из 13, страница 1 из 1
27.11.2006, 15:25:33
    #34158082
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
Скажите, пожалуйста, есть ли случаи когда применение метода Select оправдано?
Или сказать категоричное "нет" этому методу и не использовать при написании программ.
...
Рейтинг: 0 / 0
27.11.2006, 15:38:45
    #34158152
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
есть смысл, когда получаешь данные из других источников, не говоря уж о БД. На листе имеет смысл, если нужно обработать более 10000 строк: чем больше строк, тем существенней различие скорости. В любом случае, если обычные средства, типа автофильтра, не позволяют получить результат.
...
Рейтинг: 0 / 0
27.11.2006, 15:57:01
    #34158249
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
vbaproесть смысл, когда получаешь данные из других источников, не говоря уж о БД. На листе имеет смысл, если нужно обработать более 10000 строк: чем больше строк, тем существенней различие скорости. В любом случае, если обычные средства, типа автофильтра, не позволяют получить результат.
Нипонял.

Смысл есть только тогда, когда нужно именно выделить ячейку или группу ячеек.
...
Рейтинг: 0 / 0
27.11.2006, 16:09:47
    #34158329
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
k-nike vbaproесть смысл, когда получаешь данные из других источников, не говоря уж о БД. На листе имеет смысл, если нужно обработать более 10000 строк: чем больше строк, тем существенней различие скорости. В любом случае, если обычные средства, типа автофильтра, не позволяют получить результат.
Нипонял.

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

) в голове сразу об SQL мысли пошли..
...
Рейтинг: 0 / 0
27.11.2006, 19:44:11
    #34159018
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
Сергей06Скажите, пожалуйста, есть ли случаи когда применение метода Select оправдано?
Или сказать категоричное "нет" этому методу и не использовать при написании программ.Есть всего два случая, когда Select оправдан и оба связаны с общением с пользователем:
1) Если хочешь по окончании макроса поставить курсор на какую-то ячейку листа.
2) Если надо из середины макроса запустить пользовательский диалог который работает с областями, например Application.Dialogs(xlDialogFilter).Show, тут Select поможет установить начальную область.
Во всех остальных случаях Select - зло
...
Рейтинг: 0 / 0
28.11.2006, 09:31:29
    #34159647
SvIva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
White Owl1) Если хочешь по окончании макроса поставить курсор на какую-то ячейку листа.
В этом случае Select тоже не нужен. Достаточно Cells(i,j).Activate
...
Рейтинг: 0 / 0
28.11.2006, 10:01:26
    #34159726
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
кстати, в Word Select (Selection) более полезен, т.к. не всегда ему есть эквивалент
...
Рейтинг: 0 / 0
28.11.2006, 10:03:19
    #34159733
Сергей06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
White OwlВо всех остальных случаях Select - зло

Мне не совсем понятно, ЗЛО- потому что имеет много ограничений?
...
Рейтинг: 0 / 0
28.11.2006, 13:19:31
    #34160598
Indian
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
Сергей06 White OwlВо всех остальных случаях Select - зло

Мне не совсем понятно, ЗЛО- потому что имеет много ограничений?
Зло потому, что во всех случаях кроме перечисленных, совершенно ненужен, кроме того, загроможлает код и тормозит твой макрос. Одиночное его использование не так страшно, а если в цикле???
...
Рейтинг: 0 / 0
28.11.2006, 22:28:47
    #34162389
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
Сергей06 White OwlВо всех остальных случаях Select - зло

Мне не совсем понятно, ЗЛО- потому что имеет много ограничений?
На счет ворда не знаю (хотя тут уже немного разъяснили), а в экселе - потому что конструкция Range.Select возможно только тогда, когда рабочий лист активен. Т.е. перед этой командой, если открыта не одна книга с одним листом, обязательно должна быть команда Workbook().Sheets().Activate, затем Range().Select, а уж затем Range() ="значение", т.е примерно так:
Код: plaintext
1.
2.
Workbook().Sheets().Activate
Range().Select
Range() ="значение"
Иначе, если лист не активен, и произойдет вызов Range().Select, то VBA вылетит с ошибкой.

Теперь сравните с этим:
Код: plaintext
Workbook().Sheets().Range = "значение"
Здесь такой ошибки произойти не может по определению.

Теперь понятно? А потеря производительности не самое главное зло.
...
Рейтинг: 0 / 0
29.11.2006, 09:45:33
    #34162881
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
SvIva
В этом случае Select тоже не нужен. Достаточно Cells(i,j).Activate

Cells(i,j).Activate - также плохо

к сказанному k-nike +100
...
Рейтинг: 0 / 0
29.11.2006, 09:49:30
    #34162885
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
Senin Viktor SvIva
В этом случае Select тоже не нужен. Достаточно Cells(i,j).Activate

Cells(i,j).Activate - также плохо



подправлюсь:
не в смысле плохо именно в случае описанном SvIva (когда очень надо установить в конкретную ячейку), а в других, иных. Кстати, перед Cells(i,j).Activate, надо и лист активировать.
...
Рейтинг: 0 / 0
29.11.2006, 10:00:09
    #34162913
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Применение метода Select в VBA
почти все, что уже здесь написали, кроме того, что при select можно использовать фрагмент кода как для Range, так и для Shape:
http://www.dicks-blog.com/archives/2004/04/27/beginning-vba-select-and-activate/
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Применение метода Select в VBA / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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