Када има смисла експлицитно користити опцију - Екцел савети

Преглед садржаја

Чини се да сам током година изазивао одређену бес због свог контроверзног става да опција Експлицитно није корисна у ВБА. На то сам се недавно подсетио када сам одржао Скипе сесију на Екцел Веекенду у Бразилу. Написао сам књигу о програму Екцел ВБА за КУЕ. Та књига је преведена на португалски језик за тржиште Бразила. Дакле, очигледно сам 15 година подучавао добре људе из Бразила о Екцел ВБА. Сад кад сам старији од 15 година и мудрији, признаћу да могу постојати добри разлози за коришћење експлицитне опције.

У Нотре Даме-у сам похађао пословне курсеве са великом концентрацијом у програмирању. Чудним сплетом околности похађао сам све курсеве програмирања који су били доступни у НД-у и из техничких и из пословних школа. Научио сам Фортрана, Пасцала, Ассемблера и ЦОБОЛ-а. Обожавао сам програмирање. Ти курсеви програмирања спасили су мој просек успеха и спречили ме да будем избачен. Некада су нам професори рекли да морамо да испланирамо програм и да ручно нацртамо дијаграме тока пре него што започнемо са кодирањем. Био сам побуњеник. Прво бих написао програм, а затим нацртао дијаграм тока након што сам завршио.

Првих 18 месеци каријере провео сам пишући програме ЦОБОЛ. Али онда сам прешао у финансије и провео десет година радећи у финансијама и рачуноводству. Радио сам углавном рачуноводствене послове, али кад је требало да напишем неки код, знао сам довољно да напишем неки код.

Програмирао сам макронаредбе у Лотусу 1-2-3, а затим сам почео да пишем ВБА макронаредбе након што смо 1995. прешли на Екцел. Тада сам се још увек побунио: декларисање својих променљивих пре времена изгледало је превише попут цртања дијаграма тока пре писања кода. Никад нисам онај који планира унапред. Зароните. Почните са кодирањем. Ако вам је негде на путу потребна нова променљива, једноставно креирајте променљиву.

Био сам бунтовник, прво сам написао код, а касније нацртао дијаграм тока. Декларисање променљивих је, тврдио сам, намењено формалним програмерима. Ако радите у рачуноводству и једноставно избаците 20 редова кода, нема разлога да своје променљиве декларишете пре времена.

Мој став о томе натерао ме је на пријатељске расправе са другим Екцел стручњацима. Јордан Голдмеиер. Боб Пхиллипс. Цристиано Галвао.

Прво, увек сам препоручивао да пријавите своје променљиве објекта. У доњем коду, ВСД се декларише као радни лист и додељује помоћу команде Сет. Ако декларишете променљиву објекта, можете прегледати сва својства и методе тако што ћете откуцати променљиву праћену тачком.

Декларација променљивих објекта доводи до овог корисног аутоматског довршавања

Ако не користите Оптион Екплицит, ризикујете правописне грешке. У доњем коду креира се променљива под називом ФиналРов. У следећем реду сам вероватно хтео да пређем са 2 на ФиналРов, али променљиву сам погрешно написао као Фина1Ров.

Пре неколико деценија, писачи машина ИБМ Селецтриц пропустили су тастер 1, јер би људи уместо тога уписивали мала слова Л.

Без изричите опције, неко можда неће схватити да је грешка у куцању ту. Променљива ФиналРов може садржати 100. Али код унутар петље се неће извршити, јер променљива Фина1Ров никада није иницијализована и садржаће нулу.

Да бисте спречили фрустрацију отклањања грешака у коду са потенцијалним грешкама у куцању, можете отворити Алатке, Опције у ВБА менију. Означите поље Захтевај изјаву променљиве приказано доле.

Означите ово поље да бисте ухватили грешке у куцању.

Сви будући модули започињу линијом која каже Оптион Екплицит. Мораћете да додате нове редове на врху макронаредбе који дефинишу променљиве ФиналРов и и. Екцел вам неће рећи о правописној грешци док заправо не покушате да покренете макро. Затим ће вас упозорити да променљива није дефинисана.

Истакнута реч је погрешно написана.

Дакле, то је твој позив. Ако вам не смета да планирате унапред и пријавите све своје променљиве, имаћете сигурносну мрежу ВБА која ће вам рећи ако сте погрешно унели променљиву. За мене више волим узбуђење отклањања грешака у коду један по ред и проналажења сопствених грешака у куцању сам. Али ако вам се не свиђа да живите опасно, слободно омогућите Оптион Екплицит.

Нисам баш сигуран да ли су моје радње укључивале кораке 5, 8 или 9 од 12 корака. Али ако је неко провео додатно време у отклањању грешака у свом коду због грешке при куцању, жао ми је што сам вам нанео тај бол.

Сваке суботе ћу у Екцел-у разговарати о једној од својих лоших навика и расправљати зашто можда треба да радиш оно што кажем уместо да радим оно што радим ја.

Екцел мисао дана

Питао сам своје пријатеље из програма Екцел Мастер за савет о програму Екцел. Данашња мисао за размишљање:

„Не мењајте програмере прорачунских табела средином преговора.“

Јордан Голдмеиер

Занимљиви Чланци...