VBA makró hibakeresése - Excel tippek

Egy nem működő Excel VBA makró hibakeresése. Csodálatos eszközök vannak az Excel VBA-ban, amelyek lehetővé teszik a változókban tárolt aktuális érték megtekintését, miközben egyenként sorban lépked át a kódban. Ha olyan makród van, amely nem működik,

Videót nézni

  • Excel VBA makrója nem működik
  • A VBA elképesztő hibakereső eszközökkel rendelkezik
  • A kód futtatása helyett az F8 billentyűvel léphet végig
  • A sárga színű vonal az a vonal, amelyet le akar futtatni
  • Vigye az egérmutatót bármely változó fölé a változó értékének megtekintéséhez.
  • Váltson előre-hátra az Excelbe, hogy lássa, mi történik

Videó átirat

Ismerje meg az Excel programot a Podcast 2096-os epizódjából: A VBA makró hibakeresése

Hé, üdvözlöm újra a netcasten, Bill Jelen vagyok. A mai kérdés: Valakinek volt valamilyen kódja, amelyet feltettem egy régi YouTube-videóra, és feltett egy megjegyzést: „Á, ez nem működik. Nem menti a duplikált számlát, de nem dob hibát. ” Nem tudom, mi a baj a kóddal. Jól van, tudod, nézd, remek eszközök állnak rendelkezésre, amikor a VBA makró nem működik. Tehát van itt egy gombunk, amely állítólag futtat valamilyen kódot. Hozzárendelem a Makrót, a neve SaveInvoice. Kattintson a Szerkesztés gombra, és vége a VBA-nak. És általában, amikor megnyomjuk ezt a gombot, akkor csak futtatni fogja ezt a kódot. BAM! Mintha mindez nagyon gyorsan történt, de nem lehet figyelni, mi történik.

Tehát a Hibakereső eszközök alatt az egyik kedvenc dolgom itt a Debug Step Into, aminek látni fogja, hogy a gyorsbillentyű az F8, és ez lehetővé teszi számunkra a kód futtatását egyenként. Tehát megnyomtam az F8-at, és ez az - a sárga vonal az a sor, amelyet végrehajtani készül. Tehát, ha megnyomom az F8 billentyűt, akkor átugorja ezt a két deklarációt, és most egy ActiveSheet-t készítünk. Másolás. Tehát ami itt igazán szép, az tudja, különösen, ha van egy nagy monitorja, hogy a Podcast ablak túl kicsi, de amit tehet, megnézheti a Makró futását. Tehát jelenleg az ActiveSheet elkészítése készül. Másolás. Jelenleg a Podcast 2096 nevű munkafüzetben vagyok. Itt van a Számla nevű munkalap, és amikor megnyomom az F8 billentyűt, látni fogja, hogy most egy teljesen új munkafüzeten vagyok, a Book2 néven, és csak a Számla van, rendben.

És most ezt a nagy, hosszú dolgot fogjuk hozzárendelni az New FN-hez. Nyomja meg az F8 billentyűt. Most rendben, nem úgy tűnt, mintha bármi is történt volna itt, mert itt semmi nem történt. De itt a szép dolog, most hozzárendeltem valamit ahhoz a változóhoz, az Új FN-hez, és ha megfogom az egeret és az egérrel az Új FN fölé viszek, megjelenik egy kis eszköztipp, amely megmutatja, hogy mi van tárolva az Új FN-ben. Tehát a fájlnév mentése, ott van a mappa, ahová fog kerülni. Invoice1234-nek hívják, mert az értéket átvette az F4-ből, majd hozzáadta a PDF-et.

Rendben, az Excel egyik legbosszantóbb dolga az, hogy ha a memóriája kezd gyengülni, akkor ez az eszköztipp nem akar megjelenni. Ott lebegsz, és semmi sem fog történni. Néha kattintanod kell, hogy itt pótold, és néha csak egyáltalán nem jelenik meg. Amikor egyáltalán nem jelenik meg, a Ctrl + G billentyűkombinációt megtehetjük. A Ctrl + G az azonnali ablak, és akkor használni fogjuk? amely a Debug.Print, NewFN parancsikonja. Más szóval mondd el, mi van az Új FN-ben, és megmutatja, mi van az Új FN-ben.

Rendben, most futtatni fogjuk ezt a kódsort, amely létrehoz egy PDF-t. Rendben, szóval megnyomom az F8 billentyűt. Rendben, és ezen a ponton kellene egy új PDF-fájlunk, 1234-es számmal, és ha megnézem a mappát, akkor az Inv1234 május 11-én, 6: 25-kor készült. Félelmetes, igaz?

Rendben, most eljutunk arra a pontra, ahol mi a probléma. Rendben, ezért itt nyomjuk meg az F8 billentyűt, és ez Duplicate Copy néven jelenik meg. Rendben, ez bevált. Aztán F8, és láthatjuk, mi van az Új FN-ben. Rendben, tehát van benne DupInv1234.pdf, és akár ide is visszajöhet, és csak a NewFN nyomtatása után kattintson, majd látni fogja, hogy megváltoztattuk a fájl nevét, rendben. Szóval, minden klassz. Ezután megnyomjuk az F8 billentyűt a PDF létrehozása futtatásához. Fantasztikus! Minden nagyon jól néz ki, igaz?

Tehát térjen vissza a Podcast fájljainkhoz. Rendben, de a DupInv1234 nevű valami helyett csak nem tudom, hogy valami úgynevezett Book2. Rendben, csak egy perccel ezelőtt hozták létre. Ez lehet az egyetlen, csak gee! Úgy tűnik, hogy ez rossz név. Rendben, szóval visszatérünk a VBA-hoz, és tudom, hogy csak így rendeltem megfelelő értéket az Új FN-nek, rendben. És lássuk, mit takarítunk meg. Mentjük NewFN1 néven, amely üres; és mivel üres, ez azt jelenti, hogy a fájl nevét veszi, ami jelen esetben a Book2, mivel készítettem róla egy másolatot. És megváltoztatta - Oh nézd! Tehát itt hozzárendeltem a nevet a NewFN-hez, majd elmentettem ezt a NewFN1-et, és most, mert hibakeresést és lebegést folytatok - Az egérmutató az eddigi legnagyobb dolog. Remélhetőleg képes leszek rájönni, mi történik.Tehát visszajövök és megváltoztatom a NewFN1-et. Most itt van a fantasztikus dolog. Rendben, tehát már átmentem ezt a sort a makróban, de ezt visszahúzhatom, és azt mondhatom, hogy rendben, futtassuk újra F8-at. Most hozzuk létre a PDF-t. Rendben, és ott jelenik meg a megfelelő névvel, és minden klassz.

Rendben, most, hogy tudom, hogy kész vagyok, minden nagyszerű. Innen fog minden működni. Csak a Futtatás gombra kattintok, és a kód végéig fut. Rendben, néha hosszú Makród lesz, tudod, több száz működő kóddal, majd egy nem működő részrel, rendben? Tehát itt még néhány más eszközt említettek. Ha át kell ugrania egy csomó kódot, és mindent addig kell futtatnia, nos, ennek egyik módja az, hogy ide kattint és létrehoz egy töréspontot. Rendben, szóval most, amikor ezt lefuttatom, mindent lefuttat addig a pontig. Csak rákattinthatok a Futtatás gombra, és leáll, vagy ha nem is akarsz töréspontot beállítani, akkor csak ide kattintunk, és azt mondjuk, hogy Debug, Run To Cursor. Futás a kurzorhoz.Most már tudom, hogy ez itt problémát fog okozni, mert a számlaszám megváltoztatásához szükséges kódot még nem kapcsoltam össze. Tehát csak beírok egy új számlaszámot, és most azon a soron vagyok. Hibakeresés, Futtatás a kurzorhoz, amely a Ctrl + F8. Rendben, szóval most mindent lefuttattak addig a pontig, és amire nekünk kellene, láthatnunk kell, hogy most hozta létre az Inv1235-et, rendben. És most erről van szó - ezen a kódsoron vagyunk. Vagy az F8 billentyűt lenyomva futtathatom az egyik sort, vagy csak az út hátralévő részét. És ott van a DupInv1235, rendben? Tehát a Debug Tools itt, a VBA-ban fantasztikus. Futtassunk egy kódot egyenként, rendezzük el a képernyőt úgy, hogy mind a futó kódot, mind pedig a bal oldalon láthassuk a kód eredményeit. És tudod, remélhetőleg kitalálhatod, hogy mi a baj a kóddal.

Rendben, így az epizódok összefoglalása: Legyen egy nem működő Excel VBA makró. Csodálatos hibakereső eszközökkel rendelkezik. A kód futtatása helyett az F8 segítségével léphet végig a kódon. A sárga színű vonal az a vonal, amelyet le kell futtatni. Ha a változó fölé viszi az egérmutatót, akkor megtekintheti a változó értékét, és előre-hátra válthat az Excel programra, hogy lássa, mi történik.

Nos, hé, szeretném megköszönni, hogy betértél. Legközelebb találkozunk egy újabb netcast-lal.

Fájl letöltése

Töltse le a minta fájlt innen: Podcast2096.xlsm

érdekes cikkek...