Ако ще прекарвате време в работа с макроси във Visual Basic Editor, защо да не се възползвате от някои от вградените инструменти, които ще улеснят работата ви? Тези съвети значително ще подобрят вашето изживяване при програмиране на макроси.
Прилагане на блокови коментари
Поставянето на един апостроф пред който и да е ред код казва на Excel да пропусне този ред код. Тази техника се нарича коментиране на код. Повечето програмисти използват единичния апостроф, за да създават коментари или бележки в кода, както е показано тук.
Един единствен апостроф пред който и да е ред превръща този ред в коментар.
Понякога е полезно да коментирате няколко реда код. По този начин можете да тествате определени редове код, докато кажете на Excel да игнорира коментираните редове.
Вместо да прекарвате време в коментиране на ред по ред, можете да използвате лентата с инструменти Редактиране, за да коментирате цял блок код.
За да активирате лентата с инструменти за редактиране, отидете в менюто на VBE и изберете View→Toolbars→Edit. Изберете редовете от код, които искате да бъдат коментирани, и след това щракнете върху иконата на Блокиране на коментари в лентата с инструменти Редактиране, както е показано тук.
Използвайте лентата с инструменти за редактиране, за да приложите коментари към блок от код.
Копиране на няколко реда код
Можете да копирате цели блокове код, като маркирате редовете, от които се нуждаете, и след това задръжте натиснат клавиш Ctrl, докато плъзгате блока. Този стар трик на Windows работи дори когато плъзгате между модули.
Ще разберете, че плъзгате копие, когато курсорът ви покаже символ плюс до него, както е показано тук.
Ctrl-плъзнете, за да създадете копие.
Прескачане между модули и процедури
След като кешът на макрокода започне да нараства, бързото преминаване между модули и процедури може да е трудно. Можете да облекчите болката, като използвате няколко горещи клавиша.
-
Натиснете Ctrl+Tab за бързо придвижване между модулите.
-
Натиснете Ctrl+Page Up и Ctrl+Page Down, за да се придвижвате между процедурите в рамките на модул.
Телепортиране към вашите функции
Когато преглеждате макрос, може да срещнете променлива или име на функция, което очевидно сочи към някакъв друг код. Вместо да преглеждате всички модули, за да намерите откъде идва тази функция или име на променлива, можете просто да поставите курсора си върху името на тази функция или променлива и да натиснете Shift+F2.
Както илюстрира тази фигура, вие незабавно се телепортирате към произхода на тази функция или име на променлива. Натискането на Ctrl+Shift+F2 ще ви върне там, откъдето сте започнали.
Натиснете Shift+F2 върху името на функция или променлива, за да бъдете отведени до нея.
Придържане към правилната процедура
Когато вашите модули съдържат множество процедури, превъртането през определена процедура без неволно превъртане в друга процедура може да бъде трудно. Често ще откриете, че превъртате нагоре и след това надолу, опитвайки се да се върнете към правилната част от кода.
За да избегнете тази глупост, щракнете върху бутона Преглед на процедурата в долния ляв ъгъл на VBE, както е показано тук. Това ограничава превъртането само до процедурата, в която се намирате.
Ограничете превъртането до активната процедура.
Преминаване през вашия код
За да преминете през вашия код, трябва да поставите макроса си в режим за отстраняване на грешки. Просто поставете курсора си навсякъде в макроса и след това натиснете клавиша F8.
В програмирането терминът отстраняване на грешки означава намиране и коригиране на възможни грешки в кода. Един от по-полезните инструменти за отстраняване на грешки е възможността да преминавате през кода си един ред по ред. Когато преминавате през кода, гледате как всеки ред се изпълнява.
Първият ред код е маркиран и малка стрелка се появява в лявото поле на прозореца с кода, както е показано тук. Натиснете F8 отново, за да изпълните маркирания ред код и да преминете към следващия ред. Продължавайте да натискате F8, за да гледате как всеки ред се изпълнява до края на макроса.
Натиснете F8, за да преминете през всеки ред от вашия макрос.
За да излезете от режима за отстраняване на грешки, отидете до менюто на VBE и изберете Debug→Step Out.
Преминаване към конкретен кодов ред
Ами ако искате да започнете да преминавате през кода си на конкретен ред? Е, можете да направите точно това, като просто преместите стрелката!
Когато ред код е маркиран в режим за отстраняване на грешки, можете да щракнете и плъзнете стрелката в лявото поле на прозореца с код нагоре или надолу, като я пуснете на всеки ред код, който искате да изпълните следващия, както е показано тук.
Плъзнете стрелката, докато преминавате през кода си.
Спиране на кода в предварително определена точка
Когато зададете точка на прекъсване, вашият код ще работи нормално и след това ще спре на реда код, където сте дефинирали като точка на прекъсване.
Тази техника за отстраняване на грешки е полезна, когато искате да стартирате тестове на малки блокове код наведнъж. Например, ако подозирате, че може да има грешка във вашия макрос, но знаете, че по-голямата част от макроса се изпълнява без никакви проблеми, можете да зададете точка на прекъсване, започваща от подозрителния ред код, след което да стартирате макроса. Когато макросът достигне вашата точка на прекъсване, изпълнението спира. В този момент можете да натиснете клавиша F8 на клавиатурата си, за да гледате как макросът върви един ред в даден момент.
За да зададете точка на прекъсване във вашия код, поставете курсора си там, където искате да започне точката на прекъсване, и след това натиснете клавиша F9 на клавиатурата. VBA ясно ще маркира точката на прекъсване с точка в лявото поле на прозореца с кода, а самата кодова линия ще бъде оцветена в кестеняво.
Точката на прекъсване се маркира с точка и щрихова текст.
Когато вашият макрос достигне точка на прекъсване, той ефективно ще бъде поставен в режим за отстраняване на грешки. За да излезете от режима за отстраняване на грешки, можете да отидете до менюто на VBE и да изберете Отстраняване на грешки → Стъпка навън.
Вижда началните и крайните стойности на променливите
Ако задържите курсора на мишката върху String или Integer променлива във VBA, докато сте в режим на отстраняване на грешки, можете да видите стойността на тази променлива в подсказка. Тази функция ви позволява да видите стойностите, които се предават в и извън променливите, което е полезно при отстраняване на грешки в кода.
Подсказките обаче могат да съдържат само 77 знака (включително името на променливата), така че ако стойността във вашата променлива е твърде дълга, тя се отрязва. За да видите отвъд първите 77 знака, просто задръжте клавиша Ctrl, докато задържате курсора на мишката.
Ето как изглежда подсказката, когато задържите курсора на мишката върху променлива в режим на отстраняване на грешки.
Началните и крайните знаци в променлива подсказка.
Изключване на автоматичната проверка на синтаксиса
Често пъти, докато работите върху някакъв код, ще откриете, че трябва да отидете на друг ред, за да копирате нещо. Не сте приключили с линията; просто трябва да го оставите за секунда. Но VBE незабавно ви спира в следите ви със съобщение за грешка, подобно на показаното тук, предупреждавайки ви за нещо, което вече знаете.
Незавършен ред от код води до разтърсващо съобщение за грешка.
Тези кутии за съобщения ви принуждават да спрете това, което правите, за да потвърдите грешката, като натиснете бутона OK. След половин ден от тези внезапни кутии за съобщения, ще сте готови да хвърлите компютъра си на стената.
Е, можете да запазите компютъра и разума си, като изключите автоматичната проверка на синтаксиса. Отидете до менюто на VBE и изберете Инструменти→Опции. Появява се диалоговият прозорец Опции, показващ раздела Редактор. Премахнете отметката от опцията Автоматична проверка на синтаксиса, за да спрете тези досадни съобщения за грешки.
Предотвратете предупредителни съобщения по време на кодиране.
Не се притеснявайте да пропуснете легитимна грешка. Вашият код все още ще стане червен, ако се заблудите, предоставяйки визуална индикация, че нещо не е наред.