Едно от предимствата на VBA като интерпретиран език е, че можем да изпълняваме отделни процедури, без да се налага да компилираме цялото приложение. Нека да проучим как точно правим това.
Обществени процедури
Обществени процедури без аргументи
В стандартен модул можете да поставите курсора вътре в публична рутина, която няма аргументи, да натиснете [F5] и тази процедура ще се изпълни незабавно.
Ако искате да преминете през рутината, можете или да зададете точка на прекъсване на един от редовете, преди да натиснете [F5], или просто да натиснете [F8] („Step Into“) и веднага да започнете да преминавате през кода за процедурата.
Обществени функции без аргументи
Това също работи с публични функции в стандартни кодови модули. Ключът е, че функцията не може да приеме никакви аргументи, дори и незадължителни.
Обществени процедури с аргументи
Какво се случва, ако се опитате да изпълните публична процедура, която приема един или повече аргументи (дори и незадължителни)? Командата "Run> Run Macro" изпълнява:
Частни процедури
Частни процедури без аргументи
Не мога да си взема заслуга за откриването на това. Специални благодарности изказваме на Тери Чапман за това, че предаде факта, че можете да натиснете F5, за да отстраните грешки Частно процедури, а не само публични процедури.
Подобно на Тери, аз временно променях личните си процедури на публични, докато отстранявах грешки. Оказа се, че изобщо не ми се е налагало да правя това.
Частни процедури С Аргументи
След като Тери ме накара да се съмнявам в моите предположения, реших да видя колко много мога да се размина. Много повече, отколкото очаквах, се оказа!
Вярвате или не, можете да отстраните грешки в частни процедури, които приемат аргументи без временно ги сменя на публични процедури. За да направите това, просто трябва да извикате напълно квалифицираното име на процедурата от прозореца Immediate. Под „пълно квалифицирано име“ имам предвид името във формата на {ModuleName}.{ProcedureName}
.
Вижте този пример:
Но не ми вярвайте на думата. Опитайте!