Ladění makra VBA - Excel tipy

Jak ladit makro aplikace Excel VBA, které nefunguje. V aplikaci Excel VBA existují úžasné nástroje, které vám umožňují zobrazit aktuální hodnotu uloženou v proměnných při procházení kódu po jednom řádku. Pokud máte makro, které nefunguje,

Sledovat video

  • Máte makro Excel VBA, které nefunguje
  • VBA má úžasné ladicí nástroje
  • Spíše než spustit kód, můžete krokovat kód pomocí F8
  • Žlutá čára je čára, která se má spustit
  • Umístěním kurzoru myši na libovolnou proměnnou zobrazíte její hodnotu.
  • Přepínáním sem a tam do Excelu zobrazíte, co se děje

Přepis videa

Naučte se Excel z Podcastu, epizoda 2096: Ladění makra VBA

Hej, vítej zpět na netcastu, jsem Bill Jelen. Dnešní otázka: Někdo měl nějaký kód, který jsem zveřejnil na staré video na YouTube, a on přidal komentář se slovy: „Ach, to nefunguje. Neuloží duplicitní fakturu, ale nevyvolá chybu. “ Nevím, co se děje s kódem. Dobře, takže víte, podívejte se, existují skvělé nástroje, které jsou k dispozici, když nefunguje makro VBA. Takže tady máme tlačítko, které má spustit nějaký kód. Chystám se přiřadit Makro, jmenuje se SaveInvoice. Kliknu na Upravit a skončíme ve VBA. A normálně, když stiskneme toto tlačítko, spustí se tento kód. BAM! Jako by se to všechno stalo opravdu rychle, ale nemůžete sledovat, co se děje.

Takže pod nástroji Debug je jednou z mých oblíbených věcí Debug Step Into, kde uvidíte, že klávesová zkratka je F8, a to nám umožňuje spustit kód po jednom řádku. Takže jsem tam stiskl F8 a toto je - žlutá čára je čára, kterou se chystá provést. Takže pokud stisknu klávesu F8, přeskočí tyto dvě deklarace a teď se chystáme udělat ActiveSheet.Copy. Takže to, co je tady opravdu krásné, je, víte, zvláště pokud máte velký monitor, že okno Podcastu je příliš malé, ale co můžete udělat, je sledovat běh Makra. Právě teď se tedy chystá udělat ActiveSheet.Copy. Právě teď jsem v sešitu s názvem Podcast 2096. Zde je pracovní list s názvem Faktura a když stisknu klávesu F8, uvidíte, že jsem teď v úplně novém sešitu s názvem Book2 a máme jen fakturu, dobře.

A teď se chystáme přiřadit tuto velkou a dlouhou věc Nové FN. Stiskněte klávesu F8. Dobře, nevypadalo to, že by se tady něco stalo, protože tady se nic nestalo. Ale tady je ta krásná věc, nyní jsem této proměnné s názvem New FN přiřadil něco a pokud vezmu myš a najedu myší nad New FN, objeví se malý tip nástroje, který mi ukáže, co je uloženo v New FN. Ukládá se tedy název souboru, tam je složka, do které se má dostat. Jmenuje se Invoice1234, protože převzal hodnotu z F4 a poté přidal PDF.

Dobře, jednou z nejvíce frustrujících věcí na Excelu je to, že pokud se vám začne zhoršovat paměť, tento tip nástroje se nechce objevit. Budete se tam vznášet a nic se nestane. Někdy musíte kliknout, abyste to napravili, a někdy se to vůbec nezobrazí. Když se to vůbec neobjeví, můžeme udělat Ctrl + G. Ctrl + G je okamžité okno a pak použijeme? což je zkratka pro Debug.Print, NewFN. Jinými slovy, řekněte mi, co je v New FN, a ukáže vám, co je v New FN právě tam.

Dobře, takže teď spustíme tento řádek kódu, který vytvoří PDF. Dobře, tak stisknu klávesu F8. Dobře, a v tomto okamžiku bychom měli mít nový PDF s 1234 a pokud se podívám do složky, určitě byl právě vytvořen dostatek Inv1234 11. května v 6:25. Úžasné, že?

Dobře, nyní se dostáváme do bodu, kdy máme problém. Dobře, takže zde stiskneme klávesu F8 a zobrazí se jako duplicitní kopie. Dobře, to fungovalo. A pak F8 a můžeme vidět, co je v New FN. Dobře, takže má DupInv1234.pdf a můžete se sem dokonce vrátit a jednoduše kliknout na Tisknout NewFN a pak uvidíte, že jsme změnili název souboru, dobře. Takže je všechno v pohodě. A potom stiskneme klávesu F8 a spustíme Vytváření PDF. Skvělý! Všechno vypadá skvěle, že?

Vraťte se tedy k našim souborům Podcast. Dobře, ale místo toho, abych měl něco, co se jmenuje DupInv1234, prostě nevím, jak se něco nazývá Book2. Dobře, právě to bylo vytvořeno před minutou. To musí být ten jediný, ale gee! Zdá se, že je to špatné jméno. Dobře, takže se vracíme k VBA a vím, že jsem právě takhle přidělil správnou hodnotu New FN, dobře. A podívejme se, na co to ukládáme. Ukládáme to jako NewFN1, který je prázdný; a protože je prázdný, znamená to, že přebírá název souboru, který je v tomto případě Book2, protože jsem vytvořil jeho kopii. A změnil to - Oh, podívej! Tady jsem tedy přidělil název NewFN a poté uložil tento NewFN1, a teď, protože ladím a vznáším se - Vznášení je největší věc vůbec. Doufám, že budu schopen přijít na to, co se děje.Takže se vrátím a změním NewFN1. Tady je úžasná věc. Dobře, takže tento řádek již prošel v Makru, ale můžu to přetáhnout zpět a říct, dobře, pojďme to spustit znovu F8. A nyní vytvořme PDF. Dobře, a tam se to ukáže se správným jménem a všechno je v pohodě.

Dobře, teď, když vím, že jsem hotová, je všechno skvělé. Odtud bude všechno fungovat. Stačí kliknout na Spustit a bude spuštěn na konec kódu. Dobře, někdy budete mít dlouhé Makro se stovkami řádků kódu, které fungují, a potom s jednou konkrétní částí, která nefunguje, dobře? Zde bylo zmíněno několik dalších nástrojů. Pokud potřebujete přeskočit spoustu kódu a spustit vše až do tohoto bodu, jedním ze způsobů, jak to udělat, je kliknout sem a vytvořit bod zlomu. Dobře, takže teď, když to spustím, vše se spustí až do tohoto bodu. Můžu jen kliknout na běh a zastaví se to, nebo pokud dokonce nechcete nastavit zarážku, klikneme sem a řekneme Debug, Run To Cursor. Spustit kurzor.Teď vím, že to zde způsobí problém, protože kód ke změně tohoto čísla faktury jsem ještě nepřipojil. Takže vložím nové číslo faktury a teď jsem na tomto řádku. Debug, Run To Cursor, což je Ctrl + F8. Dobře, takže teď to všechno proběhlo až do tohoto bodu a to, co bychom měli mít, je, abychom viděli, že právě vytvořil Inv1235, dobře. A teď je to o … jsme na tomto řádku kódu. Mohu buď buď stisknout klávesu F8 pro spuštění jednoho řádku, nebo jen pro zbytek cesty. A je tu náš DupInv1235, dobře? Takže ladicí nástroje zde ve VBA jsou úžasné. Pojďme spustit kód po jednom řádku, uspořádat obrazovku tak, abychom viděli jak běžící kód, tak výsledky kódu vlevo. A víte, doufejme, že můžete zjistit, co se s kódem děje.

Dobře, takže rekapitulace epizody: Připravte si makro Excel VBA, které nefunguje. Má úžasné ladicí nástroje. Spíše než spuštěním kódu můžete kód projít pomocí klávesy F8. Žlutá čára je čára, která má být spuštěna. Umístěním ukazatele myši na proměnnou zobrazíte hodnotu této proměnné, přepínáním tam a zpět do Excelu zobrazíte, co se děje.

No, hej, chci ti poděkovat, že jsi se zastavil. Uvidíme se příště na dalším netcastu z.

Stáhnout soubor

Stáhněte si ukázkový soubor zde: Podcast2096.xlsm

Zajímavé články...