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

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

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

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

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

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

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

Дмитрий о практическом тренинге
С большим удовольствием посетил бы ещё какой-нибудь тренинг

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

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

Сергей Борзенков о практическом тренинге
Безусловно, польза от участия в этом мастер-классе огромная!

Здравствуйте, Дмитрий!

Хотел бы поделиться своими впечатлениями о мастер-классе "Видео-справочник по функциям VB".

Сначала - о положительных моментах. Безусловно, польза от участия в этом мастер-классе огромная! За короткий период времени ознакомиться с ПОЛНЫМ(!) набором функций (т.е. получить представление, разобрать примеры и варианты применения) - это серьезная задача и очень большой прогресс для каждого, кто поставил целью изучить и применять язык на практике. Кроме этого, в качестве дополнительного бонуса, участник мастер-класса получил полностью готовые к применению полезные программы для решения практических ежедневных задач (например, сортировка по алфавиту). Лично для меня САМЫМИ полезными были разделы, касающиеся функций даты и времени, управления файлами, операций с массивами. Ранее я не имел достаточных знаний об этих функциях и тех возможностях, которые они предоставляют.

Теперь - об отрицательных моментах. Считаю, что неправильно проводить многочасовые занятия без какого-либо перерыва. Необходимы паузы (хотя бы музыкальные) каждые 45 минут хотя-бы на 2-3 минуты. К концу пятого часа второй части семинара мозг уже отказывался воспринимать информацию, а задавать вопросы не возникало желания. Я бы рекомендовал ограничить продолжительность одного занятия 3 часами. По моему мнению, лучше было бы перенести разбор последних тем мастер-класса на третий день семинара. Тем более, что они оказались самыми малоизвестными и интересными.

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

Борис Теницкий о мастер-классе
Благодаря Вашему тренингу я теперь знаю, как это реализовать

Дмитрий, спасибо Вам!

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

У меня были задумки по автоматизации моментов в моей работе и благодаря Вашему тренингу я теперь знаю как это реализовать. Единственное, хотелось бы, чтобы было отведено побольше времени на прохождение тренинга (например, 3 дня на урок), все-таки сложно сочетать его с работой. Хочется и дальше постигать новое, Жду новых программ по макросам и пр. ))))

Евгений Захаров о практическом тренинге
Не всё так сложно на самом деле

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

Артем Проскурин о практическом тренинге

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

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

В данном уроке показан пошаговый алгоритм "чистки" программного кода от "мусорных" строк. Кроме того, рассматривается конструкция 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 политикой конфиденциальности
Ваши данные строго конфиденциальны, они нигде не публикуются и используются исключительно для информирования вас о новых материалах на сайте, мероприятиях и/или иных услугах данного проекта.
В любой момент времени вы можете отказаться от получения сообщений.
Последние комментарии
Дмитрий Быстров
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

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

Людмила
03.05.2020 в 19:11:12

Замечательные уроки, большое спасибо автору. Все очень доходчиво, без лишних заморочек.

Алексей
25.04.2020 в 14:24:56

Доступно и понятно!Круто!!!

▲ Наверх