Вообще, программирование на VB в Excelе стоит начинать с включения режима записи и выполнения действия руками.
Это да, но до самых интересных и мощных штук в экселе так не доберешься, к сожалению.
Selection сопряжён с визуальными эффектами, что лишнее, имхо.
Не совсем так. Если просто записать макрос, то вы увидите там слишком много лишних движений - выделение каждой ячейки (что-нибудь вроде
Range("A1").Select), включение режима копирования и прочее. Все это совершенно не нужно в итоге (и рано или поздно вы к этому придете). И именно это и вызывает все "визуальные эффекты". Вот недавний топик -
«Старый Excel-файл со старым макросом [Excel 2003]» - там ка раз приведен макрос, который "просто записали и всё". А объект
Selection - это просто ссылка на диапазон выделенных ячеек. И кстати, по сути тот же
Range.
Ну и конечно, все визуальные эффекты отключаются строчкой
Код:
Application.ScreenUpdating = False
в начале макроса. Это ускоряет выполнение в несколько раз даже самого оптимизированного макроса (конечно, сила эффекта зависит от того, насколько активно вы перезаписываете ячейки).