Понять как работает любой макрос! Breakpoint, Locals - Immediate - Watches Window (Серия VBA 15)

Поделиться
HTML-код
  • Опубликовано: 14 янв 2025

Комментарии • 46

  • @АндрейЛесников-з8ч
    @АндрейЛесников-з8ч 5 лет назад +13

    Мега-мега-мегаграмотное изложение материала и продуктивные уроки! Редкость на просторах интернета! Низкий Вам поклон за столь эффективное изложение материала по VBA! Вы педагог от Бога, продолжайте в том же духе! Низкий поклон за труды! Не поленюсь и напишу это коммент по каждым видео курса!!!

    • @BilyalKhassenov
      @BilyalKhassenov  5 лет назад +2

      Здравствуйте, Андрей!
      Со своей стороны точно также не поленюсь и поблагодарю Вас за этот приятный комментарий под каждым видео точно так же :)
      С уважением и хорошего Вам дня,
      ХБ

  • @olegyes934
    @olegyes934 4 года назад +11

    Как поставить 1000 лайков и столько же раз подписаться?))) Ну очень крутые уроки, замечательная подача материала! Автору - огромная благодарность!

  • @Bah1918
    @Bah1918 6 лет назад +12

    Добрый вечер.Каждый раз ,новое интересное. Очень познавательный урок.

    • @BilyalKhassenov
      @BilyalKhassenov  6 лет назад +3

      Здравствуйте, Сергей! Большое спасибо за комментарий, хорошего Вам дня :)

  • @АрменЖидрасян
    @АрменЖидрасян 3 года назад +3

    Очень хорошо объяснено. Есть ещё один вариант, который может быть удобней и проще, чем устанавливать триггер на watch через переменную, это команда Stop(особенно если в середине огромного кол-ва циклов что-то произошло и нет уверенности из-за какой переменной или значения и как вообще это могло случиться).
    if +-=>< 'перечисляем как хочется наборы условий для паузы процедуры
    Stop ' эта команда как и breakpoint остановит выполнение
    end if

  • @sergeinikolaev2089
    @sergeinikolaev2089 3 года назад +1

    Поначалу очень смутили переменные для значений строки и столбца - долго не понимал что происходит! Разобрался - внимательнее надо слушать)) Спасибо, большое, как всегда очень здорово и познавательно! Самое интересное как всегда в конце!

  • @karinakhassenova3685
    @karinakhassenova3685 6 лет назад +8

    Спасибо 👍🏻

  • @ОлегПаламарчук-в9у
    @ОлегПаламарчук-в9у 3 года назад +3

    Билял, тебе большое спасибо за этот урок, с тобой становится всё просто и понятно!
    Жаль что в VBA нужно Debug.Print писать, чтобы выводилась проделка... в современных языках в консоли автоматически выводится. Это я к тому, что VBA можно было бы дальше развивать, делать более современным и мощным

  • @V._A._S.
    @V._A._S. 3 года назад +2

    Полезный урок. Лайк. Спасибо.

  • @SamSambl4
    @SamSambl4 4 года назад +2

    Спасибо за труд!

  • @AndreyDelay
    @AndreyDelay 5 лет назад +2

    Круто! спасибо!

  • @rustamtau7944
    @rustamtau7944 5 лет назад +4

    Не понимаю, почему так мало подписчиков. Контент на 5+. Есть один минус, в маркетинге - захотел я купить курс по вба, а ссылки в описании нет.

    • @BilyalKhassenov
      @BilyalKhassenov  5 лет назад +1

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

    • @rustamtau7944
      @rustamtau7944 5 лет назад

      @@BilyalKhassenov ПО поводу курса, что я хотел сказать:
      В любом видео по vba/excel, которое я нахожу для себя полезным, после просмотра я иду в описание ролика, где обычно есть ссылка на сайт автора, с его курсами. Сейчас я просто смотрю что есть на ютюб, и статьи в инете, потом хочу всё это привести в систему, и затем вывести на более высокий уровень. Соответственно буду искать человека, который может предложить системное решение (в виде полноценного курса от А до Я), и которому я буду надоедать со своими вопросами по поводу каждой запятой в ВБА.
      Было бы неплохо, имхо, сделать рассылку с полезняшками, чтобы не давать подписчикам забыть про себя. В ютюбе слишком многое случается за один день, физически просмотреть всё, что хочешь, ну никак нельзя, тем более человеку, который работает с 9 до 6, пять дней в неделю. Поэтому надо как-то напоминать людям о себе, задействовать доп.каналы. Рассылки на почту раз в неделю, телеграм, если нет времени сделать и вести сайт , то хотя бы ВК, инстаграмм тоже очень живой, можно оттуда заинтересовать, и привлечь на ютюб.
      есть ещё пару мыслей, но как-то неформатно писать об этом в комментах, это так сказать вне рамок рассматриваемого урока.

  • @yellowmoonishka1725
    @yellowmoonishka1725 10 месяцев назад

    спс

  • @ВасилийШумилов-о8ь

    Лет 10 на VBA программирую и пользоваться только locals незная о таком мощьном функционале watchers

  • @alekseychaykovskiy3963
    @alekseychaykovskiy3963 5 лет назад +1

    спасибо

    • @BilyalKhassenov
      @BilyalKhassenov  5 лет назад +1

      Добрый вечер, Алексей!
      Большое спасибо за Ваш комментарий и с наступающим новым годом Вас! :)
      С уважением,
      ХБ

  • @krakoziabratv5543
    @krakoziabratv5543 3 года назад +1

    Молча лайк

  • @sevakworld
    @sevakworld 4 года назад +3

    Очень интересно. Спасибо большое!
    Можно вопрос: можно ли экспортировать данные из окна locals window vba на лист Excel чтобы изучить взаимосвязи и иерархию свойств?
    Например объявить переменную Excel.Workbooks получить на locals window vba значения и экспортировать на лист.
    Заранее спасибо!

    • @BilyalKhassenov
      @BilyalKhassenov  4 года назад

      Здравствуйте, Севак!
      Большое спасибо за интересный вопрос! К сожалению, я не смог найти решения в рамках использования лишь VBA. При этом, интересным фактом является то, что отдельные пункты в Locals Window можно вручную копировать (ПКМ-Copy) и затем вставлять в ячейки на рабочем листе самого Excel. Из этого, возможно, можно предположить, что автоматизированный экспорт всех значений из окна Locals так же возможен (но, вероятно, уже при выходе за рамки использования лишь VBA). Но это лишь предположение.
      Если Вы найдёте вариант решения данной задачи, буду рад услышать его 😊
      Хороших Вам выходных, Севак! 😊
      С уважением,
      Билял

  • @СергейЩепилин
    @СергейЩепилин Год назад

    кайф

  • @dashok_ro4683
    @dashok_ro4683 4 года назад +3

    можно ли узнавать "адрес" из значение динамического массива, который находится в цикле? как в одном из предыдущих уроков.

    • @BilyalKhassenov
      @BilyalKhassenov  4 года назад +1

      Здравствуйте, Дарья!
      Конечно возможно! 😊
      Если Вы имели ввиду Watches Window - то просто добавляете в него нужный Вам массив. Рядом с Watch Вашего массива будет иметься значок плюса - нажав на него Вы раскроете весь массив и сможете посмотреть отдельное содержимое каждой его отдельной ячейки 😊
      С уважением,
      Билял

  • @HandbrakeAddict
    @HandbrakeAddict 3 года назад +1

    Коммент ради раскрутки канала!

  • @АльбинаСкорова
    @АльбинаСкорова 3 года назад +3

    Пока не проработала урок вручную не поняла, зачем это нужно

  • @RUSn9
    @RUSn9 4 года назад +2

    Билял , спасибо за видео. Только фAрмат(см.комментарии) резал глаза. В остальном всё достойно.

    • @BilyalKhassenov
      @BilyalKhassenov  4 года назад

      Здравствуйте!
      Большое спасибо за Ваш комментарий!
      Эх, Вы сейчас подметили очень важный пункт, который мне теперь тоже сильно режет глаз :D
      Но, поверьте, это произошло случайно, из-за торопливости - грубо говоря, быстро писал и не доглядел ошибку. Очень, конечно, жаль, что подобные ошибки видеозапись не прощает и не позволяет в позднейшем исправить. Но да ладно, думаю зрители поймут ситуацию 😊
      С уважением,
      Билял

    • @RUSn9
      @RUSn9 4 года назад

      @@BilyalKhassenov Ещё раз спасибо.

  • @АлексейСоков-ь8и
    @АлексейСоков-ь8и 3 года назад +1

    2021

  • @ГерманРыков-ъ6в
    @ГерманРыков-ъ6в 5 лет назад +2

    Здравствуйте. Познаю азы с помощью Вашего канала. Ваша легкая форма изложения стала для меня "ледоколом" и я пока в общем (надеюсь не на долго) уже начинаю понимать происходящие процессы.
    Дошёл до этого видео и очень хочу с помощью него понять один макрос (да в принципе вообще научиться их понимать по средствам Вашей методики) однако у меня возникает проблема постоянно вылетает ошибка. Я в этого макрос пытался вставить команду debag.print....., однако ничего не получается.
    Полагаю, что не учет какой-то важной детали. Прошу Вас помочь.
    Вот текст макроса
    Sub MakeRouteTable()
    Dim DeltaT#, DeltaS#, DeltaD#, NumSteps%, FirstRow%, LastRow%
    Const MINS_IN_ONE_STEP = 1
    Application.ScreenUpdating = False
    FirstRow = ActiveCell.CurrentRegion.Rows(3).Row
    LastRow = ActiveCell.CurrentRegion.Rows.Count + FirstRow - 3
    For i = 6 To 3 Step -1
    'îïðåäåëÿåì ÷èñëî øàãîâ íà ïåðåãîíå
    NumSteps = Int((Cells(i, 2) - Cells(i - 1, 2)) * 24 * 60 / MINS_IN_ONE_STEP)
    'âû÷èñëÿåì èçìåíåíèå êîîðäèíàò è âðåìåíè íà êàæäîì øàãå
    DeltaT = (Cells(i, 2) - Cells(i - 1, 2)) / (NumSteps + 1)
    DeltaS = (Cells(i, 3) - Cells(i - 1, 3)) / (NumSteps + 1)
    DeltaD = (Cells(i, 4) - Cells(i - 1, 4)) / (NumSteps + 1)
    'çàïîëíÿåì ñòðîêè èíòåðâàëîâ ïî êàæäîìó ïåðåãîíó
    For j = 1 To NumSteps
    Rows(i).Insert
    Cells(i, 2) = Cells(i + 1, 2) - DeltaT
    Cells(i, 3) = Cells(i + 1, 3) - DeltaS
    Cells(i, 4) = Cells(i + 1, 4) - DeltaD
    Next j
    Next i
    End Sub

    • @ГерманРыков-ъ6в
      @ГерманРыков-ъ6в 5 лет назад +1

      окно Locals дает информацию, а вот применяя приемы из видео пока не получается получать информацию из окон Ivvediate и Watches

    • @alekseychaykovskiy3963
      @alekseychaykovskiy3963 5 лет назад +1

      Скидывай файл с примером (в котором возникает ошибка).

    • @BilyalKhassenov
      @BilyalKhassenov  5 лет назад +2

      Здравствуйте, Герман!
      Полагаю, Вы работаете с Option Explicit. В таком случае Ваш макрос не запускается в первую очередь из-за того, что Вы забыли объявить переменные i и j, которые в дальнейшем используются в макросе. Соответственно, в области объявления переменных (в начале макроса) Вы должны объявить эти переменные, например, вот таким образом:
      Dim i As Long
      Dim j As Long
      Внесите эту поправку в Ваш код и посмотрите, будет ли программа в таком случае работать. Я попробовал запустить этот макрос на рандомных значениях для проверки. К сожалению, у меня данный макрос входит в бесконечный цикл и процедуру приходится вручную останавливать. Не знаю, в чём заключается точная задача Вашего макроса, поэтому это пока всё, чем я мог помочь - дальше Вы должны протестировать поправку на Вашем файле сами, и, возможно, внести дальнейшие поправки.
      В любом случае, если у Вас что-то будет не получаться и возникнут дальнейшие вопросы - смело пишите, разберёмся :)
      С уважением,
      ХБ

    • @ГерманРыков-ъ6в
      @ГерманРыков-ъ6в 5 лет назад

      @@alekseychaykovskiy3963 drive.google.com/file/d/146yqjlp7ati2hrLoHvOfyNSpnC16-MIv/view?usp=drivesdk

    • @ГерманРыков-ъ6в
      @ГерманРыков-ъ6в 5 лет назад

      @@alekseychaykovskiy3963 макрос свою задачу выполняет на 5 (дробит время между станциями и дробит координаты). Я просто хочу через вспомогательные окна VBA научиться понимать в том числе и такие макросы🤷‍♂️

  • @MrCrazyAdmin
    @MrCrazyAdmin 2 года назад

    В конце видео,где символ лайка, что это за звук?! Вертится на языке, а не помню....
    upd:. Нашел,это из mortal kombat, toasty

  • @user-fhmn
    @user-fhmn Год назад

    Неудачный пример с breakTrigger. Зачем добавлять значение в Watches, если breakpoint можно поставить прямо внутри if ? Лучше бы показал, что в breakpoint можно задавать логические, арифметические и иные выражения и отслеживать их результат, а не только значения переменных.