En av fördelarna med att VBA är ett tolkat språk är att vi kan utföra individuella procedurer utan att behöva kompilera hela applikationen. Låt oss utforska exakt hur vi gör det.
Offentliga förfaranden
Offentliga rutiner utan argument
I en standardmodul kan du placera markören inuti en offentlig rutin som inte har några argument, tryck på [F5] och den rutinen kommer att köras omedelbart.
Om du vill gå igenom rutinen kan du antingen ställa in en brytpunkt på en av raderna innan du trycker på [F5] eller helt enkelt trycka på [F8] ("Step Into") och omedelbart börja stega igenom koden för rutinen.
Offentliga funktioner utan argument
Detta fungerar även med publika funktioner i standardkodmoduler. Nyckeln är att funktionen inte kan acceptera några argument, inte ens valfria.
Offentliga förfaranden med argument
Vad händer om du försöker genomföra ett offentligt förfarande som kräver ett eller flera argument (även valfria)? Kommandot "Kör> Kör makro" kör:
Privata rutiner
Privata förfaranden utan argument
Jag kan inte ta åt mig äran för att jag upptäckte den här. Ett särskilt tack riktas till Terry Chapman för att han berättade att du kan trycka på F5 för att felsöka Privat förfaranden på plats, inte bara offentliga förfaranden.
Precis som Terry brukade jag tillfälligt ändra mina privata procedurer till offentliga medan jag felsökte dem. Det visar sig att jag aldrig behövde göra det alls.
Privata förfaranden Med Argument
När Terry fick mig att ifrågasätta mina antaganden, bestämde jag mig för att se hur mycket jag kunde komma undan med. Mycket mer än jag hade förväntat mig, visar det sig!
Tro det eller ej, du kan felsöka privata procedurer som tar argument utan tillfälligt ändra dem till offentliga förfaranden. För att göra detta behöver du bara anropa det fullständigt kvalificerade procedurnamnet från det omedelbara fönstret. Med "fullständigt namn" menar jag namnet i formatet {ModuleName}.{ProcedureName}
.
Kolla in det här exemplet:
Men ta inte mitt ord för det. Gör ett försök!