Töötava Exceli VBA makro silumine. Exceli VBA-s on hämmastavaid tööriistu, mis võimaldavad teil näha muutujatesse salvestatud praegust väärtust, kui sirvite koodi järjest läbi. Kui teil on makro, mis ei tööta,
Vaata videot
- Teil on Exceli VBA makro, mis ei tööta
- VBA-l on hämmastavad silumisvahendid
- Selle asemel, et oma koodi käivitada, saate koodi F8 abil läbi astuda
- Kollase joonega on joon, mida see hakkab jooksma
- Selle muutuja väärtuse nägemiseks hõljutage kursorit mis tahes muutuja kohal.
- Toimuva vaatamiseks lülitage Excelisse edasi-tagasi
Video ärakiri
Õppige Exceli programmi Podcast, osa 2096: VBA makro silumine
Tere, tere tulemast tagasi netiülekandesse, ma olen Bill Jelen. Tänane küsimus: kellelgi oli kood, mille ma postitasin vanale YouTube'i videole, ja ta postitas kommentaari: „Ah, see ei tööta. See ei salvesta duplikaadiarvet, kuid ei vea. " Ma ei tea, mis koodil viga on. Olgu, tead, vaata, seal on suurepäraseid tööriistu, mis on saadaval siis, kui VBA makro ei tööta. Nii et meil on siin nupp, mis peaks mingi koodi käivitama. Lähen määrama makrot, selle nimi on SaveInvoice. Klõpsan nuppu Muuda ja oleme VBA-s läbi. Ja tavaliselt, kui me seda nuppu vajutame, käivitatakse see kood lihtsalt. BAM! Nagu see kõik juhtus väga kiiresti, kuid te ei saa jälgida, mis toimub.
Nii et silumisriistade all on üks minu lemmik asju siin Debug Step Into, mille näete, et otseteeklahv on F8, ja see võimaldab meil koodi käivitada üks rida korraga. Nii et ma vajutasin seal klahvi F8 ja see on - kollase joonega on see rida, mida ta hakkab täitma. Nii et kui ma vajutan klahvi F8, hüppab see üle nende kahe deklaratsiooni ja nüüd hakkame tegema ActiveSheet.Copy. Nii et see on siin tõesti ilus, eriti kui teil on suur monitor, et Podcasti aken on liiga väike, kuid mida saate teha, saate vaadata makro töötamist. Nii et praegu on see ActiveSheet. Kopeeri. Praegu olen töövihikus nimega Podcast 2096. Siin on tööleht nimega Arve ja kui vajutan klahvi F8, näete, et olen nüüd uhiuue töövihiku peal Book2 ja meil on lihtsalt Arve korras.
Ja nüüd hakkame selle suure ja pika asja määrama New FN-ile. Vajutage klahvi F8. Hea küll, ei tundunud, et siin midagi juhtus, sest siin ei juhtunud midagi. Aga siin on see ilus asi, ma olen nüüd määranud sellele muutujale nimega New FN midagi ja kui ma võtan hiire ja hõljutan kursorit New FN, ilmub väike tööriistanipp, mis näitab mulle, mis on uude FN-i salvestatud. Nii et see salvestab failinime, seal on kaust, kuhu see läheb. Selle nimi on Invoice1234, kuna see võttis väärtuse F4-lt ja lisas seejärel PDF-i.
Olgu, nüüd on Exceli üks kõige pettumusttekitavam see, et kui teie mälu hakkab väheks jääma, ei taha see tööriista näpunäide ilmuda. Hõljutate seal ja midagi ei juhtu. Mõnikord peate siin üles klõpsama ja mõnikord lihtsalt ei kuvata seda üldse. Kui seda üldse ei ilmu, saame teha Ctrl + G. Ctrl + G on kohe aken ja siis hakkame kasutama? mis on Debug.Print, NewFN otsetee. Teisisõnu öelge mulle, mis on uues FN-is ja see näitab teile, mis seal uues FN-is on.
Olgu, nüüd käivitame selle koodirea, mis loob PDF-i. Hästi, nii et vajutan klahvi F8. Hästi, ja siinkohal peaks meil olema uus PDF-fail koos 1234-ga ja kui ma kausta vaatan, siis kindlasti loodi 11. mail kell 11.25 Inv1234. Äge, eks?
Hästi, nüüd oleme jõudmas punkti, kus meil on probleem. Hästi, nii et vajutame siin klahvi F8 ja see kuvatakse duplikaadikoopiana. Hästi, see töötas. Ja siis F8 ja näeme, mis on uues FN-is. Olgu, nii et sellel on DupInv1234.pdf ja võite isegi siia tagasi tulla ja klõpsata lihtsalt pärast nuppu Print NewFN ja näete, et oleme failinime muutnud, olgu. Nii et kõik on lahe. Seejärel vajutame PDF-i loomise käivitamiseks klahvi F8. Vinge! Kõik näeb hea välja, eks?
Nii et tulge tagasi meie Podcast-failide juurde. Hästi, aga selle asemel, et meil oleks midagi, mida nimetatakse DupInv1234-ks, ei tea ma lihtsalt, kuidas miski nimega Book2. Hästi, see loodi just minut tagasi. See peab olema üks, kuid gee! Tundub, et see on vale nimi. Hästi, nii et tuleme tagasi VBA juurde ja tean, et määrasin just New FN-ile õige väärtuse, olgu. Ja vaatame, mis me selle salvestame. Salvestame selle tühjana NewFN1-na; ja kuna see on tühi, tähendab see, et see võtab failinime, mis antud juhul on Book2, kuna tegin sellest koopia. Ja muutis seda - oh vaata! Nii et siin määrasin ma NewFN-ile nime ja salvestasin siis selle NewFN1 ning nüüd, kuna ma silun ja hõljutan - hõljutamine on kõigi aegade suurim asi. Loodetavasti saan aru, mis toimub.Nii et tulen tagasi ja vahetan NewFN1. Siin on vinge asi. Olgu, nii et see on juba makros makstud, kuid ma saan selle tagasi üles lohistada ja öelda, olgu, käivitame selle uuesti F8. Ja nüüd loome PDF-i. Hästi, ja seal ilmub see õige nimega ja kõik on lahe.
Hästi, nüüd, kui tean, et olen valmis, on kõik suurepärane. Siit saab kõik toimima. Klõpsan lihtsalt Käivita ja see jookseb koodi lõpuni. Hästi, mõnikord on teil pikk makro, tead, sadade töötavate koodiridadega ja siis üks kindel osa, mis ei tööta, eks? Nii et siin mainiti just paari muud tööriista. Kui teil on vaja hüpata üle terve hulga koodi ja käivitada kõik kuni selle hetkeni, siis on üks võimalus selleks klõpsata siin ja luua murdepunkt. Hästi, nii et nüüd, kui ma selle käivitan, ajab see kõik selle punktini. Ma saan lihtsalt klõpsata käsku Käivita ja see peatub või kui te ei soovi isegi murdepunkti seada, klõpsame lihtsalt siin ja ütleme Debug, Run to Cursor. Käivita kursorini.Nüüd ma tean, et see tekitab siin probleemi, kuna selle arve numbri muutmiseks ei saanud ma veel ühendust. Nii et panen lihtsalt uue arve numbri sisse ja nii olen praegu sellel real. Silumine, käivita kursor, mis on Ctrl + F8. Hästi, nii et nüüd jooksis see kõik sinnamaani ja meil peaks olema see, et peaksime nägema, et see lõi just Inv1235, olgu. Ja nüüd on see umbes - oleme sellel koodireal. Ma võin lihtsalt vajutada klahvi F8 ühe joone jooksmiseks või lihtsalt kogu ülejäänud tee jooksmiseks. Ja seal on meie DupInv1235, olgu? Niisiis, VBA silumisvahendid on suurepärased. Laseme teil käivitada koodi üks rida korraga, korraldage oma ekraan nii, et näeksime nii töötavat koodi kui ka vasakul asuvat koodi. Ja teate, et loodetavasti saate aru, mis koodiga valesti läheb.
Hästi, nii et episoodide kokkuvõte: laske Exceli VBA makro, mis ei tööta. Sellel on hämmastavad silumisvahendid. Selle asemel, et oma koodi käivitada, saate koodi F8 abil läbi astuda. Kollasel joonel on joone jooksmine. Selle muutuja väärtuse nägemiseks saate hõljutada muutuja kohal, liikuda edasi-tagasi Excelisse, et näha, mis toimub.
Noh, hei, ma tahan tänada teid peatumast. Järgmisel korral näeme järgmise võrguülekande jaoks.
Laadige fail alla
Laadige näidisfail alla siit: Podcast2096.xlsm