Odpravljanje napak VBA Macro - Excel Nasveti

Kako odpraviti napake v makru programa Excel VBA, ki ne deluje. V Excelu VBA obstajajo neverjetna orodja, ki vam omogočajo, da vidite trenutno vrednost, shranjeno v spremenljivkah, ko prečkate kodo po vrsti. Če imate makro, ki ne deluje,

Oglejte si video

  • Imate makro Excel VBA, ki ne deluje
  • VBA ima neverjetna orodja za odpravljanje napak
  • Namesto da zaženete svojo kodo, lahko skozi kodo prestopite s tipko F8
  • Rumena črta je črta, ki jo bo kmalu zagnala
  • Miškin kazalec premaknite na katero koli spremenljivko, da vidite vrednost te spremenljivke.
  • Preklopite naprej in nazaj v Excel, da vidite, kaj se dogaja

Video zapis

Naučite se Excel iz podcasta, epizoda 2096: Odpravljanje napak makra VBA

Hej, dobrodošli nazaj na netcastu, jaz sem Bill Jelen. Današnje vprašanje: Nekdo je imel neko kodo, ki sem jo objavil na starem videoposnetku v YouTubu, in objavili so komentar, ki pravi: »Ah, to ne deluje. Podvojenega računa ne shrani, vendar ne povzroči napake. " Ne vem, kaj je narobe s kodo. Torej, veste, glejte, na voljo so imenitna orodja, ko makro VBA ne deluje. Torej imamo tukaj gumb, ki naj bi pognal neko kodo. Dodelil bom makro, ki se imenuje SaveInvoice. Kliknite Uredi in končali smo z VBA. In ko pritisnemo ta gumb, se bo ta koda samo zagnala. BAM! Kot da se je vse zgodilo zelo hitro, vendar ne morete gledati, kaj se dogaja.

Torej, v orodjih za odpravljanje napak je ena mojih najljubših stvari Debug Step Into, za katero boste videli, da je bližnjična tipka F8, kar nam omogoča, da zaženemo kodo eno vrstico naenkrat. Torej sem pritisnil F8 in to je - črta v rumeni je črta, ki jo bo kmalu izvedel. Torej, če pritisnem F8, preskoči ti dve izjavi in ​​zdaj bomo naredili ActiveSheet.Copy. Torej tisto, kar je res čudovito, je, veste, še posebej, če imate velik monitor, da je okno Podcasta premajhno, toda kar lahko storite, je, da lahko gledate zagon Makra. Torej, zdaj bomo naredili ActiveSheet.Copy. Trenutno sem v delovnem zvezku, ki se imenuje Podcast 2096. Tu je delovni list z imenom Račun in ko pritisnem F8, boste videli, da sem zdaj v povsem novem delovnem zvezku z imenom Book2 in imamo prav Račun.

In zdaj bomo to veliko, dolgo stvar dodelili New FN. Pritisnite F8. Zdaj, ni bilo videti, da se je tu kaj zgodilo, ker se tu ni nič zgodilo. Ampak tu je nekaj lepega, tej spremenljivki, imenovani New FN, sem zdaj dodelil nekaj, in če se pomaknem z miško in premaknem miškin kazalec nad New FN, se bo pojavil majhen namig, ki mi bo pokazal, kaj je shranjeno v New FN. Tako shranjuje ime datoteke, tam je mapa, kamor bo šla. Imenuje se Invoice1234, ker je vzel vrednost iz F4 in nato dodal PDF.

Zdaj je ena najbolj motečih stvari v Excelu ta, da če se vam spomin začne zmanjkovati, se ta namig o orodju ne želi prikazati. Tam boste lebdeli in nič se ne bo zgodilo. Včasih morate klikniti, da si ga tukaj izmislite, včasih pa se sploh ne bo pojavil. Ko se sploh ne bo pojavil, lahko naredimo Ctrl + G. Ctrl + G je neposredno okno in potem bomo uporabili? kar je bližnjica za Debug.Print, NewFN. Z drugimi besedami, povejte mi, kaj je v New FN, in tam vam bo pokazal, kaj je v New FN.

Torej, zdaj bomo zagnali to vrstico kode, ki bo ustvarila PDF. V redu, zato bom pritisnil F8. V redu, na tej točki bi morali imeti nov PDF z 1234 in če grem pogledat mapo, je bil Inv1234 11. maja ob 6:25 ravnokar ustvarjen. Super, kajne?

V redu, zdaj smo prišli do točke, ko imamo težave. V redu, tukaj pritisnemo F8 in prikazano bo kot podvojena kopija. V redu, to je delovalo. In potem F8, in lahko vidimo, kaj je v novem FN. V redu, torej ima DupInv1234.pdf in lahko se celo vrnete sem in samo kliknete Print NewFN in potem boste videli, da smo spremenili ime datoteke, v redu. Torej, vse je v redu. In nato pritisnemo F8, da zaženemo Ustvarjanje PDF-ja. Super! Vse izgleda super, kajne?

Vrnite se torej k našim datotekam Podcast. V redu, ampak namesto da bi imeli nekaj, kar se imenuje DupInv1234, preprosto ne vem, kako se je nekaj imenovalo Book2. V redu, pravkar je bil ustvarjen pred minuto. To mora biti tisti, ampak ne! Zdi se, da je napačno ime. V redu, torej se vrnemo k VBA in vem, da sem pravkar tako določil pravo vrednost za New FN, v redu. In poglejmo, kako ga shranjujemo. Shranjujemo ga kot NewFN1, ki je prazen; in ker je prazen, to pomeni, da jemlje ime datoteke, ki je v tem primeru Book2, saj sem jo naredil. In ga spremenil - Oh poglej! Torej, tukaj sem dodelil ime NewFN in nato shranil NewFN1, zdaj pa, ker odpravljam napake in lebdim - lebdenje je največja stvar doslej. Upam, da bom lahko ugotovil, kaj se dogaja.Torej se vrnem in zamenjam NewFN1. Zdaj, tukaj je super stvar. V redu, torej sem že prešel to vrstico v makro, vendar jo lahko povlečem nazaj in rečem, v redu, zaženimo to znova F8. In zdaj ustvarimo PDF. V redu, tam se pokaže s pravim imenom in vse je v redu.

V redu, zdaj, ko vem, da sem končal, je vse super. Od tu naprej bo vse delovalo. Preprosto kliknem Zaženi in teče do konca kode. V redu, včasih boste imeli dolg makro z veste, na stotine vrstic kode, ki delujejo, in potem en poseben del, ki ne deluje, v redu? Torej je bilo tu omenjenih nekaj drugih orodij. Če morate preskočiti cel kup kode in zagnati vse do te točke, je eden od načinov to, da kliknete tukaj in ustvarite točko preloma. Torej, zdaj, ko zaženem to, bo vse zagnalo do te točke. Lahko samo kliknem zaženi in se bo ustavilo, ali če sploh ne želite nastaviti točke prekinitve, bomo samo kliknili tukaj in rekli Debug, Run To Cursor. Zaženi v kazalko.Zdaj vem, da bo to povzročilo težave tukaj, ker kode za spremembo te številke računa še nisem priklopil. Torej, samo vstavim novo številko računa in tako sem trenutno v tej vrstici. Odpravljanje napak, zagon do kazalca, ki je Ctrl + F8. Torej, zdaj je vse znižalo do te točke in tisto, kar bi morali imeti, je, da bi lahko videli, da je pravkar ustvaril Inv1235, v redu. In zdaj je približno - smo v tej vrstici kode. Lahko samo pritisnem F8, da zaženete eno vrstico, ali pa samo preostanek poti. In tu je naš DupInv1235, v redu? Torej, orodja za odpravljanje napak tukaj v VBA so super. Zaženemo kodo eno vrstico naenkrat, razporedimo zaslon tako, da bomo videli le kodo, ki se izvaja, in rezultate kode na levi. In veste, upam, da boste lahko ugotovili, kaj gre s kodo narobe.

V redu, povzetek epizode: imejte makro Excel VBA, ki ne deluje. Ima neverjetna orodja za odpravljanje napak. Namesto da zaženete svojo kodo, lahko skozi kodo prestopite s pomočjo F8. Rumena črta je črta, ki bo kmalu zagnana. Premaknite miškin kazalec nad spremenljivko, da vidite vrednost te spremenljivke, preklopite naprej in nazaj v Excel, da vidite, kaj se dogaja.

No, hej, rad bi se vam zahvalil, da ste se ustavili. Se vidimo naslednjič za še eno oddajo iz.

Prenesite datoteko

Prenesite vzorčno datoteko tukaj: Podcast2096.xlsm

Zanimive Članki...