"Чистка" кода макроса | Автоматизация в Excel - бесплатные уроки
Отзывы о мастер-классах и тренингах
Не зря говорят, что любовь к предмету или результат обучения зависит от преподавателя.

По сфере деятельности (экономика-финансы), без Excel(я) жить не могу, что на работе, что дома всё в нем, в родном! )

Уровень владения средний, но по сравнению с другими, достаточно высокий. Автоматизация достигается в основном с помощью, формул, связей, выпадающих списков, именованных диапазонов, формул: ЕСЛИ, ВПР, ПОИСКПОЗ, ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ и сводных таблиц. В общем много что сделано, всё работает, можно сказать упр.учет ведется в нем. Актуальность и точность данных выше бухгалтерских. Конечно бывают мелкие недочеты и дублирование вводимой информации…

Для автоматизации немного применяются макросы, но в них ничего не смыслю, создавал пример нужного результата, описывал задачу, кидал в форум на планете и потом прикручивал к своим задачам. Если приходилось менять что-то, то менял руководствуясь только одной логикой )

Попытки начать изучать VBA были, но безрезультатно… Сталкивался со многими непонятностями, не понимал структуру и те же самые Dim, Do, которые вводили в ступор.

Так вот, тренинг проведённый Дмитрием, его подача материала, живое реагирование на вопросы, его умения увлечь, донести доступным языком и примерами, привело к пониманию и даже результатам в практической деятельности. Не зря говорят, что любовь к предмету или результат обучения зависит от преподавателя.

В общем Дмитрий сумел раскрыть часть непонятного и МИФического (VBA в транслите = МИФ :) ) для меня, СПАСИБО!

Дмитрий о практическом тренинге
Информация превзошла все мои ожидания. А вебинар - это просто сказка

Я тоже очень долго использую Excel в своей повседневной и рабочей сфере. Всегда обращаю внимание на информацию по этому приложению, вдруг чего нового узнаю. Сайт Дмитрия и размещенная тут информация превзошла все мои ожидания. А вебинар - это просто сказка. Применение изложенного материала начинается после первого урока. Спасибо Дмитрию за домашние задания, за их проверку и подсказки в оптимальном их решении.

Марина Данилушкина о практическом тренинге
...Это было для меня откровением

С MS Excel приходилось сталкиваться только при заполнении табличных форм с использованием формулы = R1C1, а о макросах приходилось только слышать.

То, что в MS Excel существует код VBA, было для меня откровением.

За счет доступного всем изложения тем занятий в ясной и понятной форме на видео уроках и вебинарах, - получил массу полезной гигаинформации, с помощью которой планируется реализация наметившихся идей по автоматизации в MS Excel в некоторых аспектах своей деятельности .

Дмитрий, большое спасибо за отлично преподнесенный материал!

Виктор Демин о практическом тренинге
Перестала бояться какой бы то ни было задачи

Очень здорово, что есть бесплатные уроки в формате: "Посмотрел-применил". Тренинг идет, а в голове: "Завтра же на работе сделаю вот этот отчет, как ... задачу". И вперед.

Справочник от Дмитрия отличная подсказка тем, кто знает что хочет получить, но не знает, что писать.

Я после полученных знаний на тренингах Дмитрия, вообще перестала бояться какой бы то ни было задачи от директора, так как теперь знаю, как ее обработать, как поскорее решить и где подсмотреть (если что )))!

Марина Данилушкина о практическом тренинге
Есть желание и дальше двигаться вперед

Вот и подходит к своему завершению он-лайн тренинг, участницей которого я стала в результате удачного стечения обстоятельств. В одном из писем рассылки проекта "Excel - это просто" сообщалось об очень интересном предложении об участии в тренинге, и сразу по его прочтении у меня сложилось впечатление, что это отличный шанс. Приблизиться к изучению макросов я пробовала прежде самостоятельно - по книгам, видеоурокам.. - и в таком режиме изучать материал было непросто, и требовалось много времени на усвоение информации.

Формат тренинга же стал именно тем стимулом, который повысил интенсивность обучения многократно. Если бы в начале тренинга я увидела те задания, которые мы будет способны выполнять в финальной его части, то, пожалуй, и предположить бы не могла, что это вскоре станет реальностью. Тренинг для меня стал значительным шагом (и даже серией шагов) вперед.

Все это стало возможно благодаря профессиональному подходу к проведению обучения со стороны Дмитрия Быстрова. Это проявлялось в оперативной поддержке участников тренинга на форуме, в обеспечении всеми необходимыми информационными материалами, которые участники могут использовать и в последующем. И, что особенно ценно, это подход к построению изложения материала: информация хорошо структурирована, все продуманно, выверенно.

И отдельное спасибо хотелось бы сказать Дмитрию за его способность излагать сложные концепции простыми, доступными словами, за выверенный лаконизм, умение отсечь лишнее, и сказать именно то, что необходимо и достаточно на данный момент обучения. Ведь так важно именно на начальных этапах обучения преодолеть опасения перед чем-то неизведанным, и начать постепенно вовлекаться в незнакомую прежде сферу знаний.

Такой системный подход и позволил нарастающими темпами, шаг за шагом, формировать базу новых знаний. И не просто знаний, но и навыков - ведь все пройденное закреплялось в процессе решения домашних заданий.

И домашние задания становились одновременно и проверкой, и средством поиска новых подходов. Порой это требовало больших усилий, но при этом все, что было сделано самостоятельно, запоминается гораздо прочнее, чем то, что было просто услышано или прочитано.

Особенностью тренинга, в котором я участвовала, было то, что он проходил в формате вебинаров, что обеспечивало живое общение, ощущения причастности к группе. И график обучения был хорошей мотивацией, чтобы стараться выполнять задания. И это было основным моментом, требующим внимания, - нужно было настроиться на интенсивную работу и, исходя из этого, распределять свое время.

Также перед началом тренинга я посмотрела 15 видеоуроков, которые находятся в открытом доступе на сайте. И сейчас понимаю,что если бы не ознакомилась с ними, то обучение протекало бы ощутимо сложнее. Можно сказать, что после упомянутых видеоуроков тренинг становится логическим продолжением.

Большая благодарность Дмитрию за то, что стал нашим проводником в мире VBA и Excel, показал пути, по которым можно идти. Самое главное, что после тренинга есть желание и дальше двигаться вперед, и появляются идеи для воплощения на практике. То, что прежде казалось непонятным и замысловатым, постепенно проясняется и обретает знакомые очертания.

Дмитрий, БОЛЬШОЕ СПАСИБО за тренинг, за проведенную работу! Дальнейших успехов проекту!

Диляра Хакимуллина о практическом тренинге

"Чистка" кода макроса

При автоматической записи макроса в программном коде фиксируются все действия пользователя, отчего код "разбухает" и становится запутанным и трудным для восприятия. Поэтому после записи макроса необходимо "чистить" код, удаляя ненужные команды и оптимизируя его структуру. В результате объем кода может сократиться в несколько раз, при этом он становится значительно легче для понимания и возможной последующей доработки.

В данном уроке показан пошаговый алгоритм "чистки" программного кода от "мусорных" строк. Кроме того, рассматривается конструкция With...End With - ее назначение и структура записи.


Для просмотра видео необходимо
зарегистрироваться на сайте
Если вы уже зарегистрированы на сайте -
обновите страницу по этой ссылке или кнопкой F5

Комментарии

Страница 3 из 4:   1  2  3  4  
#1694   Александр    24.12.2013 в 21:22:31

Урок очень замечательный! Просмотрел свои старые макросы и удивился, сколько там мусора! Будем наводить порядок. Спасибо Вам, Дмитрий, что ведете нас по этому лабиринту Excel.

#1717   Сергей    11.01.2014 в 18:09:15

чистый код, чистая душа!!! спасибо за урок полезно очень

#1722   Руслан    13.01.2014 в 02:29:57

Однако...

#1723   Александр    13.01.2014 в 11:06:50

Согласен со всеми, кто высказался по поводу урока. Очень полезно и познавательно одновременно!!! Спасибо!!! И со старым Новым Годом!!!

#1727   Олег    15.01.2014 в 13:39:40

Спасибо! Очень интересные и понятные уроки!

#1759   Вячеслав    24.01.2014 в 00:43:36

Очень круто!!!

#1777   Татьяна    31.01.2014 в 22:34:25

Спасибо, интересно.

#1824   Анжелика    20.02.2014 в 19:05:21

Спасибо, очень доступно объясняете

#1871   Татьяна    25.02.2014 в 22:25:51

Спасибо, очень интересно и доступно, но приходиться конспектировать.

#1886   Ирина    09.03.2014 в 22:33:35

Большое спасибо, доступно и полезно

#1895   Татьяна    14.03.2014 в 16:51:48

Я в восторге! Столько времени потратила на непонятную литературу. А сегодня наткнулась на Ваши уроки и за час просмотра всё стало ясно как божий день!!! Спасибо за то, что Вы делаете!

#1918   Петр    06.04.2014 в 16:50:10

Спасибо! Никогда не занимался, но стало получаться

#1930   Игорь    10.04.2014 в 23:43:44

Да, все понятно и прозрачно!

#1932   Сергей    11.04.2014 в 01:40:06

Спасибо.

Такого понятного не встречал. Жаль, что нигде не работаю, даже применить негде. Для себя конечно потренируюсь.

#2034   Екатерина    16.04.2014 в 21:03:35

Супер-урок!Буду писать и "чистить" Необходимы тренировки

#2108   Юлия    25.05.2014 в 23:02:12

Спасибо за емкие понятные уроки.

#2152   Леонид    07.07.2014 в 16:56:33

Понятно и полезно. Раньше я использовал макрорекордер, но оптимизацией ни разу не занимался. Не знал, как это делать. Теперь буду. Спасибо.

#2185   Надежда    21.07.2014 в 16:43:41

Спасибо большое за педагогический талант и время!

Очень полезный урок, до которого сам "дойдешь" только кровью и потом через какое-то время.

#2227   Ксения    27.07.2014 в 19:41:27

Дмитрий, а возможно ли сделать автозамену?

Например, вместо

".Select

ActiveCell."

поставить "." по всему макросу?

#2229   Дмитрий Быстров    28.07.2014 в 11:31:02

Доброе утро, Ксения.

Попробуйте Но мне кажется, у Вас это не получится из-за символа "перенос строки", которым отделяются слова Select и ActiveCell. Поэтому я это делаю вручную

#2353   виктор    22.09.2014 в 19:11:37

+

#2550   Татьяна    02.12.2014 в 15:03:26

Очень подробно и поэтому понятно. спасибо!!!

#2563   Аслибек    06.12.2014 в 18:33:47

очень интересно спасибо, важно макрос

#2684   Анастасия Мартыненко    20.02.2015 в 14:49:55

Спасибо, за доступное изложение материала.

#2689   Слава Фёдоров    21.02.2015 в 18:06:22

Спасибо, очень полезный урок,просто и понятно постараюсь применить на практике

#2690   Yana    22.02.2015 в 03:25:54

Супер, все быстро и понятно

#2809   Нартау    07.04.2015 в 11:22:01

Меня пугал именно такой длинный и не понятный код макроса, который я просматривал после записи. Теперь я понимаю, что не так страшен черт, как его малюют! ))) Спасибо за это Дмитрию!

#2845   Геннадий    23.05.2015 в 02:36:28

Превосходно! Подробно, понятно, всё разложено по полочкам. Спасибо!

#2953   Лика    04.08.2015 в 15:29:09

Спасибо! Как понятно, пытаюсь проделывать ваши уроки самостоятельно, получается!

#2959   Валерий    18.08.2015 в 09:47:21

Дмитрий!

Не могу понять почему перестает работать макрос после включения защиты листа? При попытке его запуска появляется окно с надписью:

Run-time error '1004'

Aplication-defined or object-defined error

#2960   Дмитрий Быстров    18.08.2015 в 12:32:13

Скорее всего, Ваш макрос пытается изменить содержимое защищенной ячейки. При включенной защите листа такие действия запрещены - как вручную, так и программно. Поставьте в начале макроса команду снятия защиты листа, а в конце - команду ее включения.

#2961   Валерий    18.08.2015 в 12:42:38

Конечно же я снимал защиту с тех ячеек, в которых происходили изменения, но это не помогло. Предложенное Вами решение проблемы мне в голову не приходило. Спасибо! Буду пробовать.

#2971   Анастасия    02.10.2015 в 15:55:44

Здорово! Да здравствуют чистые и лаконичные макросы! Так будет работать гораздо быстрее! и макросы гораздо легче прочитать.

#2982   валя    12.10.2015 в 01:30:24

Благодарю сердечно. Как будто вынул из ботинок водолазные стельки.

Успехов вам, Дмитрий! И нам также.

#3045   Федорова Марина    31.01.2016 в 22:35:06

Добрый вечер,Дмитрий! Спасибо Вам за эти уроки!

Это раз. А два - вопрос.

Сразу столкнулась с этой проблемой, отложила, а теперь уже деваться некуда, надо решать.

Запись макроса упростила до минимума: передвигаюсь на три ячейки по кругу и меняю заливку. Получаю:

ActiveCell.Offset(0, 3).Range("A1").Select и т.д.

ActiveCell.Offset(-2, 0).Range("A1").Select

С этим не знаю, что делать. Чтобы чистить надо понимать, что здесь написано... Этот Range("A1") везде, куда бы курсор ни ткнула..Не понимаю...

#3055   Дмитрий Быстров    18.02.2016 в 16:41:54

Добрый день, Марина.

Как-то пропустил Ваши комментарии

Касательно ActiveCell.Offset(0, 3).Range("A1").Select - согласен, синтаксис здесь немного запутанный, но разобраться можно.

ActiveCell - это просто активная ячейка (та, что выделена на текущем листе).

Offset(0, 3) - это смещение относительно этой активной ячейки. В данном случае - на 0 строк (т.е. строка остается та же самая) и на 3 ячейки правее.

Теоретически, результатом такого смещения может быть не одна ячейка, а сразу диапазон ячеек - в том случае, если смещение делается относительно выделенного диапазона, а не относительно отдельной ячейки, как у Вас.

Поэтому для того, чтобы показать, что после смещения нас интересует только одна ячейка, в код добавляется указание Range("A1") - оно гарантированно вернет только первую ячейку из смещенного диапазона. В Вашем случае это выражение смысла не имеет (т.к. у Вас и так получается одна ячейка), но и вреда не наносит.

Select в конце указывает, что полученную в результате этих манипуляций ячейку нужно выделить.

Резюме: вся эта длинная конструкция просто выделяет ячейку на 3 столбца правее той, что уже была выделена. Как-то так

#3048   Федорова Марина    07.02.2016 в 13:22:29

Дмитрий! Еще раз от души благодарю за Ваш труд!

И это даже хорошо, что Вы не ответили Пришлось разбираться самой! Оказывается,в Excel2010 много чего интересного... и есть существенные отличия от предыдущих версий... Но с Вашим "путеводителем в кармане" удалось многое преодолеть! С энтузиазмом двигаюсь дальше Спасибо Вам!

#3061   Ольга    28.02.2016 в 22:10:21

Как, и в предыдущих уроках, все понятно и доступно показано. Благодарю, Дмитрий, за ваш труд. Успехов вам.

#3065   Виктория    20.03.2016 в 21:54:19

Спасбо большое, уроки очень нравятся!

Все просто, понятно и доступно. Хочется продолжать смотреть курс и учиться этой сложной науке!

#3069   Олег    29.03.2016 в 15:51:18

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

#3094   Марина    29.04.2016 в 15:42:58

Спасибо, Дмитрий! Всё доступно и понятно. С учетом того, что ранее я с макросами не работала, Ваши видео уроки очень выручили.

#3169   Владимир    18.08.2016 в 20:56:32

Дмитрий, восхищаюсь Вами: умением мыслить, умением так ясно донести свою мысль, вашими увлечениями. Удачи Вам!

#3199   Евгений    04.10.2016 в 18:51:03

Отличные уроки! Спасибо большое автору!

#3224   Татьяна    09.03.2017 в 13:17:49

Дмитрий, спасибо за конструктивный и легкий урок. Ваши уроки просто уникальные.

Страница 3 из 4:   1  2  3  4  
Оставлять комментарии и просматривать видеоуроки
могут только зарегистрированные пользователи.
(если ранее Вы уже регистрировались, введите повторно
Ваше имя и тот e-mail, который был указан при регистрации)
Как к Вам обращаться:
Ваш адрес e-mail:
Нажимая на кнопку "Зарегистрироваться", я даю согласие на обработку персональных данных и соглашаюсь c политикой конфиденциальности
Ваши данные строго конфиденциальны, они нигде не публикуются и используются исключительно для информирования вас о новых материалах на сайте, мероприятиях и/или иных услугах данного проекта.
В любой момент времени вы можете отказаться от получения сообщений.
Последние комментарии
Роза
10.01.2025 в 17:23:18

Лучшие уроки по содержанию и грамотности, доступности, простоты я не встречала. Спасибо вам. вы умница.

Ольга
11.11.2023 в 11:32:51

Полезно, наглядно, понятно, существенно расширила свои знания благодаря данным урокам - спасибо, Дмитрий)

Дмитрий Быстров
29.01.2023 в 12:26:41

Добрый день, Анатолий.

Подробнее о создании программы для тестирования было рассказано в специальном платном мастер-классе "Создание программы по тестированию". Приобрести его можно по этой ссылке.

Что касается счетчика времени - в мастер-классе такого функционала не было, но позднее я доработал созданную в нем программу и добавил в нее такой счетчик - при приобретении мастер-класса я вместе с ним предоставлю и доработанную версию программы.

Ulluauz
29.01.2023 в 11:03:16

Спасибо! Классно. Где можно списать Вашу программу для шаблона? Счетчик времени на тестирование как вставить?

Светлана
23.08.2022 в 13:10:20

Здравствуйте. Подскажите, а можно ли сделать Q-код в таблице, но чтоб там было видно наименование упаковки, вес, дата прихода, наименование контрагента и тд. И при каждом изменении данных, автоматически делался Q-код?

Людмила
17.04.2022 в 14:33:48

Добрый день, Дмитрий. Я случайно увидела ваши видео в ютубе. Посмотрела и мне стало интересно изучить макросы. Перешла по ссылке и просмотрела часть бесплатных видео и мне очень понравилась ваша манера преподавать просто без лишних слов. Скажите, пожалуйста, а как сделать выпадающий...

Станислав
16.08.2020 в 23:08:36

Здравствуйте В видео "Автоматизация заполнения бланка документа (платежного поручения)" говориться, что можно скачать файлы с макросами, о которых идет речь. Не могу найти. Подскажите, пожалуйста,где скачать Файл?

Юрий
21.07.2020 в 13:10:25

Благодарю Вас хотя у меня оффис 97 все полчается

Евгения
26.06.2020 в 01:10:51

здравствуйте, Дмитрий... подскажите пожалуйста такой момент, для того, чтобы сделать макрос с фамилиями, я сделала перечень с фамилиями и суммами.. так вот у меня слово фамилия при сортировке улетает в самый низ))) то есть оно тоже сортируется... что не так в моей таблице?

juna
08.05.2020 в 15:02:44

Спасибо большое.Очень полезная информация

▲ Наверх