Како исправити грешку у Екцел ВБА макроу који не ради. У Екцел ВБА постоје невероватни алати који вам омогућавају да видите тренутну вредност ускладиштену у променљивим док прелазите кроз код један по ред. Ако имате макро који не ради,
Погледајте видео
- Имате Екцел ВБА макро који не ради
- ВБА има невероватне алате за отклањање грешака
- Уместо да покренете свој код, можете да га пређете помоћу Ф8
- Линија у жутој је линија која ће се покренути
- Пређите курсором преко било које променљиве да бисте видели вредност те променљиве.
- Пребацујте се напред-назад у Екцел да бисте видели шта се догађа
Видео транскрипт
Научите Екцел из Подцаста, епизода 2096: Отклањање грешака у ВБА макроу
Хеј, добродошао назад на нетцаст, ја сам Билл Јелен. Данашње питање: Неко је имао неки код који сам објавио на старом ИоуТубе видео снимку и поставили коментар рекавши: „Ах, то не иде. Не чува дупликат фактуре, али не доводи до грешке. “ Не знам шта није у реду са кодом. У реду, знате, погледајте, постоје сјајни алати који су доступни када ВБА Макро не ради. Дакле, овде имамо дугме које би требало да покреће неки код. Идем да доделим макро, он се зове СавеИнвоице. Кликнућу Едит и завршили смо са ВБА. И обично када притиснемо то дугме, покренут ће се овај код. БАМ! Као да се све догодило врло брзо, али не можете да гледате шта се догађа.
Дакле, под алатима за отклањање грешака, једна од мојих најдражих ствари овде је Дебуг Степ Инто, за који ћете видети да је пречица Ф8, а то нам омогућава да код покрећемо један по један ред. Па сам тамо притиснуо Ф8 и то је - линија у жутој је линија коју ће ускоро извршити. Дакле, ако притиснем Ф8, он прескаче те две декларације и сада ћемо направити АцтивеСхеет.Цопи. Дакле, оно што је овде заиста лепо је, знате, нарочито ако имате велики монитор да је прозор Подцаста премален, али оно што можете да урадите је да можете да гледате како се Мацро покреће. Дакле, сада је на реду АцтивеСхеет.Цопи. Тренутно сам у радној свесци под називом Подцаст 2096. Ево радног листа под називом Фактура и када притиснем Ф8, видећете да сам сада у потпуно новој радној свесци под називом Боок2 и да имамо само фактуру, у реду.
А сада ћемо доделити ову велику, дугу ствар Новом ФН-у. Притисните Ф8. У реду, није изгледало као да се нешто овде догодило јер се овде ништа није догодило. Али ево лепе ствари, сада сам тој променљивој доделио нешто под називом Нев ФН и ако пређем мишем и задржим показивач изнад Нев ФН, појавиће се мали савет алата који ће ми показати шта се складишти у Нев ФН. Дакле, чува име датотеке, ту је фасцикла у коју ће ићи. Зове се Инвоице1234 јер је узео вредност из Ф4, а затим је додао ПДФ.
У реду, једна од најфрустриранијих ствари у вези са Екцел-ом је да ако вам меморија почне смањивати, овај савет алата не жели да се приказује. Лебдећете тамо и ништа се неће догодити. Понекад морате кликнути да бисте га овде измислили, а понекад се једноставно уопште неће појавити. Када се уопште неће појавити, оно што можемо је Цтрл + Г. Цтрл + Г је непосредни прозор и онда ћемо га користити? што је пречица за Дебуг.Принт, НевФН. Другим речима, реците ми шта је у Новом ФН и показаће вам шта је у Новом ФН управо тамо.
У реду, сада ћемо покренути овај ред кода који ће створити ПДФ. У реду, па ћу притиснути Ф8. У реду, и у овом тренутку требали бисмо да имамо нови ПДФ са 1234 и ако одем да погледам фасциклу, довољно је да је управо створен Инв1234 11. маја у 6:25. Супер, зар не?
У реду, сада долазимо до тачке у којој имамо проблем. У реду, овде притиснемо Ф8 и он ће се приказати као дупликата копија. У реду, то је успело. А онда Ф8, и можемо видети шта је у Новом ФН. У реду, дакле има ДупИнв1234.пдф, а можете се чак вратити овде и само кликнути на Принт НевФН и тада ћете видети да смо променили име датотеке, у реду. Дакле, све је у реду. А затим притиснемо Ф8 да покренемо Креирање ПДФ-а. Авесоме! Све изгледа сјајно, зар не?
Вратите се нашим датотекама Подцаста. У реду, али уместо да имам нешто што се зове ДупИнв1234, једноставно не знам како се нешто зове Боок2. У реду, управо је створен пре минут. Ово мора бити један али не! Изгледа да је погрешно име. У реду, па се враћамо ВБА-у и знам да сам управо тако доделио праву вредност Новом ФН-у, у реду. И да видимо како то чувамо. Чувамо га као новиФН1 који је празан; а пошто је празно, то значи да узима име датотеке, што је у овом случају Боок2, будући да сам је направио. И променио га - О, види! Дакле, овде сам доделио име НевФН-у, а затим сам сачувао овај НевФН1, а сада зато што исправљам грешке и лебдим - Лебдење је највећа ствар икада. Надам се да ћу успети да схватим шта се догађа.Тако да се враћам и мењам НевФН1. Ето, то је сјајна ствар. Добро, већ сам прошао ову линију у Макронаредби, али могу да је повучем назад и кажем, у реду, покренимо ово поново Ф8. А сада креирајмо ПДФ. У реду, и тамо се појави са правим именом и све је у реду.
У реду, сад кад знам да сам завршио, све је супер. Одавде ће све функционисати. Само кликните Рун и покренуће се до краја кода. У реду, понекад ћете имати дугачки Макро са, знате, стотинама линија кода који раде и онда један одређени део који не ради, у реду? Дакле, овде је управо поменуто неколико других алата. Ако требате прескочити читаву гомилу кода и покренути све до те тачке, па, један од начина да то урадите је да кликнете овде и направите тачку прекида. У реду, па сада када покренем ово, све ће се свести до те тачке. Само могу да кликнем на трчање и зауставиће се, или ако чак не желите да поставите тачку прекида, једноставно ћемо кликнути овде и рећи Отклањање грешака, трчање до курсора. Трчи у курсор.Сада знам да ће овде овде настати проблем јер се код за промену броја рачуна још увек није повезао. Зато ћу само ставити нови број фактуре и тако сам тренутно на тој линији. Отклањање грешака, трчање до курсора који је Цтрл + Ф8. Добро, сада је све свело до те тачке и оно што бисмо требали имати је да бисмо могли да видимо да је управо креирао Инв1235, у реду. А сада је реч о - ми смо на овом реду кода. Могу само да притиснем Ф8 да пређем једну линију или да прођем остатак пута. А ту је и наш ДупИнв1235, у реду? Дакле, Алати за отклањање грешака овде у ВБА су сјајни. Хајде да покрећете код један по ред, распоредите екран тако да са леве стране можемо видети и код који се изводи и резултате кода. И знате, надам се да можете да схватите шта иде са кодом.
У реду, резиме епизоде: Имајте Екцел ВБА макро који не ради. Има невероватне алате за отклањање грешака. Уместо да покренете свој код, можете да га пређете помоћу Ф8. Линија у жутој боји је линија која ће ускоро бити покренута. Можете да задржите показивач изнад променљиве да бисте видели вредност те променљиве, пребаците се напред и назад у Екцел да бисте видели шта се догађа.
Па, хеј, желим да ти захвалим што си свратио. Видимо се следећи пут за још једно емитовање од.
Скини докуменат
Преузмите датотеку узорка овде: Подцаст2096.клсм