VBA for MS Office: Цикл без модуля (окно Immediate)
Добрый день, начинающие макросописатели!
Знаете ли вы, что для запуска простенького цикла не обязательно добавлять модуль, создавать процедуру (Sub).
Несложный цикл, даже вложенный, можно выполнить прямо из окошка Immediate (полезнейшая штука, я щетаю).
В окне Immediate для разделения команд используется не перенос строки, а двоеточие (кстати, двоеточие как разделитель можно использоватьи в обычных макросах).
Например, я хочу в бекапе файла для уменьшения размера убрать все формулы, заменив их значениями. В нём больше ста листов, еле ворочается.
Набираю в окне Immediate такую строку
for each sh in activeworkbook.Sheets:sh.usedrange.value=sh.usedrange.value:debug.Print sh.name:next sh
Жму Enter – и дожидаюсь окончания работы цикла. Ура, всё готово.

Ебать, я представляю как лаганет эксель, если это без "DoEvents" запустить, на сто листов с данными то.
И да, это как бы можно делать, но нахуя.
Ты все равно редактор кода открываешь, тратишь время, а написать
не очень то и трудно.
И да, вместо ActiveWorkbook.Sheets, лучше использовать ThisWorkbook.Worksheets