Корисници ће се често сусретати са различитим врстама грешака у ВБА. У наставку нудимо неколико стратегија за њихово решавање и решавање. Проћи ћемо кроз технике које можете користити за испитивање кода током тестирања, као и методе хватања грешака током извођења.
Тестирање и праћење различитих врста грешака у ВБА коду може бити дуготрајно и фрустрирајуће. Неријетко се може чути програмера Програмирање програмирања је поступак писања упутстава за извођење рачунара. Сличан је рецепту за људе. Рецепт садржи листу радњи које кажу да се преко 30% свог времена потроши на тестирање.
Временом ћете постајати све бољи у избегавању грешака, али мало је вероватно да ћете икада први пут написати савршен код. Ако научите како да избегавате, решавате и пратите ВБА грешке, уштедећете себи пуно времена у будућности.
Врсте ВБА грешака
Да бисмо олакшали ствари, врсте грешака у кодирању категорисали смо у три групе. За сваку групу ћемо истражити неке примере, а затим разговарати о томе како бисте их могли истражити и решити.
1. Синтаксне грешке - Одређена линија кода није правилно написана
2. Грешке при компајлирању - Проблеми који се дешавају при састављању редова кода, иако изгледа да поједини редови кода имају смисла
3. Грешке током извођења - Када је код у принципу у принципу тачан, али радња коју предузме корисник или подаци који се користе доводе до неочекиваних грешака.
Шта су синтаксне грешке?
Синтаксне грешке су начин на који ВБА може да вам каже да ли ваш код има смисла, на најосновнијим нивоима. Можемо извршити једноставно поређење са правилима писања реченице на енглеском:
- А. предмет је потребно.
- А. глагол је потребно.
- А. главни град писмо је потребно на почетку.
- Интерпункција је потребан на крају.
- Предмети, придеви и друге граматичке особине нису обавезни.
Јаненашао 18 грешака у њеном ВБА коду.
На сличан начин, ВБА намеће одређена правила о томе шта се захтева у одређеним ситуацијама. На пример, када иницирате основни условни ИФ израз у вашем коду, морате да поновите следећа правила синтаксе за први ред ИФ израза;
- То мора почети са Ако
- Следећи мора бити а логички тест , као што је к> 10
- Коначно, мора се завршити речју онда
АкоНумберЕррорс> 20онда
Ако прекршите горња правила енглеског или ВБА, ваша граматика (енглески) или синтакса (ВБА) сматра се нетачном.
Како препознати синтаксну грешку
Уређивач ВБА означава синтаксне грешке црвеном бојом, омогућавајући вам да их лако препознате и решите. Поред тога, ако покушате да покренете свој код или започнете нови ред, приказаће вам се порука о синтаксној грешци у наставку.
Основна синтаксна грешка:
Оквир са поруком о синтакси:
Да бисте били сигурни да се провере врше док куцате, омогућите „Аутоматска провера синтаксе“ у менију Опције.
Како решити синтаксне грешке
Синтаксне грешке представљају грешке у начину писања одређене линије вашег кода. Морају се поправити пре него што покренете свој код. С искуством, црвени текст ће бити све што вам је потребно да бисте уочили грешку. Али ако сте и даље заглављени, само потражите на мрежи „иф синтакса израза вба“ или било која варијација која одговара вашим потребама и пронаћи ћете мноштво примера одређене линије коју покушавате да напишете.
Шта су грешке при компајлирању?
Грешке при компајлирању односе се на ширу групу ВБА грешака, које укључују синтаксне грешке. Грешке при компајлирању такође идентификују проблеме са вашим кодом када се разматрају као целина. Синтакса сваког појединачног ретка може бити тачна, али када се сложе, редови кода немају смисла. Грешке при компајлирању су истакнуте када компајлирате или покренете свој код.
Како препознати грешку у компајлирању
Када покренете свој ВБА код, грешке при компајлирању биће приказане у ВБА дијалошком оквиру према примерима у наставку.
Ако је ваш пројекат дугачак или сложен и укључује више рутина, може бити корисно саставити код пре него што га покренете. Спречава ситуације у којима се половина кода успешно изводи, а затим се појави грешка. Можете да компајлирате свој ВБА код тако што ћете кликнути на мени за отклањање грешака → Саставити ВБА пројекат.
Пример 1
Грешка при компајлирању за део ИФ израза који недостаје „Заврши ако“. Свака појединачна линија у коду је тачна, али заједно не представљају потпуну изјаву ИФ.
Пример 2
У овом примеру, поступак компајлирања ВБА открио је синтаксну грешку, истакнуту црвеном бојом. ВБА указује на то да доњем коду недостаје завршна заграда на функцији.
Пример 3
Грешке у компајлирању су уобичајене када се користи експлицитна опција и јављају се када променљива није експлицитно дефинисана. Са активираном Оптион Екплицит, наредба Дим је потребна да би декларисала све променљиве пре него што се могу користити у вашем коду.
Како решити грешке при компајлирању
ВБА грешке компајлирања спречиће покретање погођених рутина. Док их не поправите, ВБА не може правилно да протумачи ваш код. Оквири са порукама о грешкама често пружају корисније савете него за синтаксне грешке.
Ако вам није одмах очигледно у чему је проблем из поруке о грешци, покушајте да користите Мицрософтов центар за помоћ да бисте стекли идеју о томе како тачно треба да буде написана ваша изјава или функција. Ево примера поруке о грешци „Блокирај ако без краја ако“ на веб локацији Мицрософт.
Шта су рунтиме грешке?
Једном када исправите синтаксне грешке и компајлирате грешке, спремни сте да започнете тестирање или правилно покретање кода да бисте видели колико добро извршава ваше жељене радње или прорачуне. Период тестирања или извршења кода уживо називамо „време извршавања“.
Рунтиме грешке се не могу открити једноставним гледањем кода; резултат су интеракције вашег кода са одређеним улазима или подацима у то време.
Грешке у извођењу често су узроковане неочекиваним преношењем података у ВБА код, неподударањем типова података, дељењем неочекиваних нула и недоступним дефинисаним опсезима ћелија. Рунтиме грешке су такође најразличитије и најсложеније за проналажење и исправљање.
Како препознати рунтиме грешке
ВБА за отклањање грешака ВБА: Како отклонити грешке код писања и покретања ВБА кода, важно је да корисник научи како да отклони грешке у коду. Очекује се корисник Екцел-а да функција кода означи код проблема жутом бојом и да нам мали наговештај шта узрокује проблем.
Пример 1
Иако доњи код једноставно дели један број са другим, постоје случајеви у којима то неће бити могуће. На пример, ако је ћелија А1 = 2 и ћелија А2 = 0, није могуће поделити са нулом. Оквир грешке при извођењу укључује дугме за отклањање грешака, које истиче код проблема.
Пример 2
У овом примеру сам створио низ за прикупљање имена н компанија у мом радном листу. Затим сам покушао да наведем шесту ставку, која може или не мора постојати у време извођења. ВБА представља поруку о грешци током извођења и омогућава ми да притиснем Дебуг да истражим проблем.
Једном када притиснем Дебуг, ВБА истакне линију кода која узрокује проблем. Сада је на мени да користим поруку „Субсцрипт оут оф ранге“ да бих утврдио шта иде по злу. Грешка индекса изван опсега генерално значи да је ваш код у принципу добар, али да одређена ставка коју тражите не може да се пронађе. Најчешће се то дешава када се референцирају ћелије или опсези у програму Екцел, као и низови у вашем ВБА коду.
Да бисте били сигурни да је функција отклањања грешака омогућена, у менију Опције> Опште> Отклањање грешака, подразумевано стање би требало да буде „Разбијање необрађених грешака“. Оставите опцију означеном.
Како решити рунтиме грешке
Пошто су грешке при извршавању различите и сложене природе, решења су такође различита. Две опште методе за смањење грешака током извођења су:
Отклањање грешака
Било би добро размислити о могућим сценаријима са којима се ваш код може сусрести. Још боље је тестирање кода на подацима из праксе или са стварним корисницима. Омогућиће вам препознавање таквих сценарија у вашем ВБА, с разгранавањем кода на различите исходе, у зависности од тога да ли постоје грешке.
Пример 1
Овде линија ‘Он Еррор Ресуме Нект’ присиљава код да настави, чак и ако се открије грешка. Затим користимо тест Ако је грешка> 0 да бисмо креирали поруку упозорења, само ако грешка постоји. „Он Еррор Гото 0“ враћа ВБА на његово подразумевано стање.
Пример 2
Овде код израчунава приход по дану на основу месечног дохотка и одређеног броја дана. Ако број дана није наведен, прескачемо на дефинисану тачку у нашем коду названу „НоДаисИнМонтхПровидед :,“, где као основну претпоставку користимо просечни број дана у месецу. Иако је поједностављено, јасно показује како заробити грешку и прескочити на другу тачку у коду.
Обришите корисничка упутства
Јасна налепница документације и радног листа обезбедиће да ваши корисници ступају у интеракцију са вашим моделом на начин који сте намеравали. Помоћи ће им у спречавању приликом уноса текста, уместо бројева, или остављања нула које би касније могле утицати на ваш код.
Резиме
Постоје три кључне врсте грешака у ВБА које могу утицати на ваш код на различите начине. Важно је активирати опције откривања грешака ВБА, као што су програм за отклањање грешака и аутоматска провера синтаксе. Они ће вам помоћи да утврдите место и природу грешака.
Више ресурса
Финанце је званични добављач глобалног сертификованог банкарског и кредитног аналитичара (ЦБЦА) ™ ЦБЦА ™ сертификација Акредитација сертификованог банкарског и кредитног аналитичара (ЦБЦА) ™ је глобални стандард за кредитне аналитичаре који покрива финансије, рачуноводство, кредитну анализу, анализу новчаног тока , моделирање савеза, отплата кредита и још много тога. програм сертификације, осмишљен да помогне свима да постану финансијски аналитичари светске класе. Да бисте наставили напредовати у каријери, додатни ресурси у наставку биће вам корисни:
- #РЕФ Екцел грешке #РЕФ Екцел грешке #РЕФ Екцел грешке узрокују велике проблеме у табелама. Научите како да пронађете и исправите грешке #РЕФ у програму Екцел у овом брзом упутству са примерима и снимцима екрана. А #РЕФ! грешка („реф“ је скраћеница) је порука коју Екцел приказује када се формула позива на ћелију која више не постоји, настала брисањем ћелија које
- Примери Екцел ВБА Екцел ВБА Примери Екцел ВБА Екцел ВБА омогућава кориснику да направи макронаредбе које аутоматизују процесе у програму Екцел. Овај водич ће користити примере Екцел ВБА да покаже како се снима макро подешавањем макроа, како се декларишу променљиве и како се референцирају подаци.
- Савети за писање ВБА-а у Екцелу Савети за писање ВБА-а у Екцелу Наведених испод налази се девет савета за писање ВБА-а у Екцелу. ВБА за Екцел уводи небројене могућности за прилагођене прорачуне и аутоматизацију.
- ВБА методе ВБА методе ВБА метода је део кода придружен ВБА објекту, променљивој или референци података који говори Екцел-у које радње треба да изврши у односу на тај објекат. Копирање, лепљење и одабир су само неки примери ВБА метода које се могу извршити.