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

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

До вашего тренинга мой уровень владения VBA в Excel был около нулевым, программирование для меня было просто каким-то чудом. Поэтому первые 4 урока приходилось себя просто заставлять выполнять домашние задания, так как мой мозг отчаянно сопротивлялся, из-за того что всё было незнакомо, постоянно вылетали какие-то ошибки, которые я не знал как исправить. К тому же, вы оставляли специально такие места в задании, которые не были освещены в уроке. Сам я их решить не мог, расстраивался, приходили мысли в голову, что это не моё, я слишком тупой для этого и т.д. И так два раза я бросал эту затею.

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

Поэтому в качестве усовершенствования ваших тренингов (чтобы люди не сдавались, из-за описанных мною причин выше) на первом занятии или при выдачи ДЗ предупреждайте, что есть в задании подводные камни, и если вы его не сможете выполнить полностью, то это нормально. Не всё сразу. Москва тоже не сразу строилась. Просто выполните задачу по максимуму.

Если бы было это предупреждение в тренинге, то чисто психологически проходить его было бы легче.

И чтобы усилить вашу рекламу (про стоимость урока равной бигмаку), добавьте что-то в таком стиле: «Чувство насыщения от БигМака уйдет через два часа, а приобретенные знания и навыки останутся с вами на всю жизнь».

Спасибо Вам большое за качественные материалы. Теперь я понимаю, что программирование — это не магия).

Михаил Разборов о практическом тренинге
Помогает разбор на простых жизненных примерах

Дмитрий, спасибо за тренинг!

Хочется отметить, что материал подается в очень доступной форме, понятно даже не программисту. В отличие от многих VBA учебников.

Ну и конечно помогает разбор на простых жизненных примерах. Сразу становится понятна суть и запоминается синтаксис языка.

Автору респект :)

Павел о практическом тренинге
Я долго не мог поверить в такой результат при таких незначительных усилиях

Добрый день, Дмитрий!

Пользуясь, случаем, хочу еще раз поблагодарить Вас за предоставленные, неоценимые материалы по работе с Excel, которые в очередной раз помогли выбраться из безвыходной (для меня) проблемы.

А возникла она буквально на днях - 3 и 4 мая. К обеду 4 мая необходимо было снять и обработать сотни электро, тепло, водосчетчиков и отчеты отправить в сбытовые и сетевые организации. В связи с отказом системы АСКУЭ, показания счетчиков пришлось списывать с каждого счетчика на ноутбук с помощью специальной программы, которая не позволяет вывести показания всех счетчиков в отдельную таблицу или распечатать. Пришлось сотни показаний переносить вручную на рабочий ПК для дальнейшей обработки. Пришлось очень сильно напрячься, чтобы уложиться в сроки.

Поэтому пришлось задуматься, как извлечь данные из базы данных этой программы в таблицы Excel. Базы данных оказались формата .mdb, которые не захотели открываться в Access 2013. Вот тогда-то и пришлось обратиться к Вашему материалу «Тренинг Взаимодействие Excel с другими приложениями», Занятие 03, «Работа с Access».

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

Это был мой очередной, очень удачный опыт изучить новую тему по Вашим материалам.

Это в очередной раз доказывает доступность и качество Ваших материалов для новичков.

Огромное спасибо за Ваши труды для облегчения наших проблем.

Юрий Юркин о тренинге
После просмотра бесплатных уроков и вебинаров со мной произошло чудо

Уважаемый Дмитрий!

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

Конечно, не всё с ходу было понятно и не всё запомнилось, но материал, изложенный в видеозаписи и в примерах, позволяет его многократно повторять и использовать. Уже есть планы для внедрения в жизнь полученных знаний.

С программированием как таковым я впервые столкнулся на 1-м курсе МВТУ им. Баумана в далеком 1978г (1 семестр, FORTRAN-4). Я старался понять и освоить новую науку, но писать даже элементарные программки так и не научился. К сожалению, я был не одинок. Из 150 студентов нашего потока, может быть, 5-6 человек могли использовать полученные знания в курсовых и дипломных работах. Для меня и остальных студентов так и осталось большим секретом, с какого бока надо подходить к ЭВМ (в то время СМ-4 и БЭСМ-6). Запомнилось ещё определённое высокомерие со стороны тех, кто умел программировать (преподаватели, студенты), по отношению к тем, кто в программировании ничего не понял. Даже приводили статистику, что только 10% людей способны быть программистами.

Вторую попытку освоить программирование, будучи инженером-разработчиком, я предпринял в 1987г, пойдя на 2-х месячные платные курсы. Неприятно удивило, что учили нас так же, как в студенческие времена. Результат тот же.

Время шло. Компьютеры стали доступны каждому. Мне понравился Excell. Самостоятельно его освоил (в том числе Windows Mobile 5.0). Стал его активно применять в торговле и в сфере управления персоналом. Когда научился писать логические мегаформулы (до 1024 знаков), понял, что их возможности ограничены и нужно снова учиться программированию, теперь уже на языке VBA. Понимая, что без преподавателя мне не обойтись, попытался найти какие-нибудь обучающие видео уроки в Интернете. Попал на Ваш, Дмитрий, сайт и после просмотра бесплатных уроков и вебинаров со мной произошло чудо. Всё, что Вы говорите на уроках мне понятно и самое смешное, я оказывается, многое помню из FORTRAN-4. Через некоторое время написал первые в своей жизни программы сначала с помощью макрорекордера, а затем используя переменные, условия и циклы. Эффект от написанных программ и появившийся практический опыт вдохновил на более глубокое изучение VBA на Вашем платном 3-х недельном тренинге.

Тренинг мне понравился. Старался выполнять домашние задания. К сожалению, на последнее задание времени не хватило (Семья, на работе конец-начало квартала, дача и т.п. - это никто не отменял.). Сказывалось отсутствие навыков и опыта.

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

Что в итоге можно сейчас сказать?

В Вашем лице, Дмитрий, нам просто повезло с преподавателем.

Все познаётся в сравнении, и теперь я думаю, что в былые времена нам просто не смогли доходчиво объяснить учебный материал по азам программирования и, образно говоря, учили плаванию в бассейне без воды.

А Вам Дмитрий, ещё раз огромное СПАСИБО за то, что помогли разбить в прах привитое мне неверие в собственные силы в области программирования.

Евгений Метасов о практическом тренинге
По ночам я сидел и разбирал все скаченные записи

Спасибо Дмитрию, я не знал, как подойти к макросам, но понимал, что без них никак, после второго занятия я решил свою долгую проблему построения баланса в нужном виде, к которой не знал, как подступиться ооочень долго. Ура. Я, находясь в Флориде, научился этому, в режиме он-лайна я смотрел всего лишь 2 вебинара, так как слишком разные часовые пояса, но по ночам я сидел и разбирал все скаченные записи, все равно все понятно. Еще раз спасибо Дмитрию

Роман Жаринов о практическом тренинге

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

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

В данном уроке показан пошаговый алгоритм "чистки" программного кода от "мусорных" строк. Кроме того, рассматривается конструкция 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

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

▲ Наверх