4 грешке које треба избегавати при програмирању Екцел макронаредби са ВБА

4 грешке које треба избегавати при програмирању Екцел макронаредби са ВБА

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





Чак и ако нисте програмер, ВБА нуди једноставне функције које вам омогућавају да својим табелама додате импресивну функционалност.





Није важно да ли сте ВБА гуру који ствара контролне табле у Екцелу или сте почетник који пише једноставне скрипте које раде основне прорачуне ћелија. Пратите ове једноставне технике програмирања да бисте научили како да пишете чист код без грешака.





Почетак рада са ВБА

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

Ако нисте програмирали ВБА у Екцелу пре, мораћете да омогућите алатке за програмере у програму Екцел. Добра вест је да је омогућавање алата за програмере заправо прилично једноставно. Само идите на Датотека > Опције и онда Прилагодите траку . Само померите Девелопер картицу са левог окна на десно.



Уверите се да је у пољу за потврду омогућена ова картица, а сада ће се картица Девелопер појавити у вашем Екцел менију.

Најлакши начин да уђете у прозор уређивача кода одавде је само да кликнете на Виев Цоде дугме испод Контроле у менију Девелопер.





Сада сте спремни за писање ВБА кода! На овој картици ћете приступити и ВБА снимање макроа у Екцелу . Сада када је Екцел спреман за рад, пређимо на неке уобичајене грешке које треба избећи и начине за њихово спречавање.

1. Страшна имена променљивих

Сада када сте у прозору кода, време је да почнете са писањем ВБА кода. Први важан корак у већини програма, било да је у ВБА или било ком другом језику, је дефинисање ваших променљивих. Неправилно именовање променљивих једна је од најчешћих програмских грешака које праве нови програмери.





зашто мој кбок оне прича

Током деценија писања кода наишао сам на многе школе мишљења када су у питању конвенције именовања променљивих и на тежи начин научио неколико правила. Ево неколико брзих савета за креирање имена променљивих:

  • Нека буду што краћи.
  • Учините их што је могуће описнијим.
  • Предговорите их са променљивом врстом (боолеан, интегер, итд ...).

Ево примера снимке екрана из програма који често користим за упућивање ВМИЦ Виндовс позива из програма Екцел ради прикупљања података о рачунару.

Када желите да користите променљиве унутар функције унутар модула или објекта (ово ћу објаснити у наставку), онда морате да је декларишете као 'јавну' променљиву тако што ћете декларацију унети унапред Јавно . У супротном случају, променљиве се декларишу ако им се унесе реч Ниједан .

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

Такође, обавезно именујте листове у Екцел радној свесци.

На овај начин, када се позивате на назив листа у Екцел ВБА коду, позивате се на име које има смисла. У горњем примеру имам лист у који увлачим информације о мрежи, па лист називам „Мрежа“. Кад год пожелим да се позовем на лист мреже, могу то учинити брзо без тражења броја листа.

2. Разбијање уместо петљи

Један од најчешћих проблема који новији ВБА програмери имају када почну писати код је правилно бављење петљама.

Петље су веома честе у Екцелу јер често обрађујете вредности података низ читав ред или колону, па морате да се петљате да бисте их све обрадили.

Нови програмери често желе да једноставно изађу из петље (ВБА Фор петље или ВБА До Вхиле петље) одмах када је одређени услов тачан.

Ево примера ове методе која се користи за прекид ВБА петље.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Нови програмери користе овај приступ јер је једноставан. Покушајте да избегнете изричито прекидање петље.

Често је важно обрадити код који долази после те „паузе“. Много чистији и професионалнији начин да се носите са условима у којима желите да оставите петљу на пола пута је само да укључите тај услов изласка у нешто попут ВБА Вхиле израза.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Ово омогућава логичан ток вашег кода. Сада ће се код петљати и зауставити када достигне 6. Нема потребе за укључивањем незгодних наредби ЕКСИТ или БРЕАК у средини петље.

3. Не користите низове

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

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

Ако никада раније нисте користили низ, не бојте се. Замислите низ као послужавник за коцке леда са одређеним бројем „коцкица“ у које можете ставити информације. Коцке су означене бројевима од 1 до 12, и на тај начин у њих „стављате“ податке.

Можете једноставно дефинисати низ само куцањем Дим аррМиАрраи (12) као Интегер .

како деинсталирати онедриве виндовс 8.1

Ово ствара „послужавник“ са 12 слотова доступних за попуњавање.

Ево како би могао да изгледа код петље реда без низа:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

У овом примеру, код се обрађује кроз сваку ћелију у опсегу и врши прорачун температуре.

Ако икада желите да извршите неки други прорачун на истим вредностима, процес би био неспретан. Морали бисте да дуплирате овај код, обрадите све ове ћелије и извршите свој нови прорачун. Све за једну промену!

Ево бољег примера, користећи низ. Прво, креирајмо низ.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

Тхе к-1 за указивање на елемент низа потребно је само зато што Фор петља почиње од 1. Елементи низа морају почети од 0.

Сада када имате низ, врло је једноставно обрадити садржај.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Овај пример пролази кроз читав низ редова ( УБоунд даје вам број вредности података у низу), врши прорачун температуре, а затим га ставља у други низ који се назива аррМиТемпс .

4. Коришћење превише референци

Без обзира да ли програмирате у пуноправном Висуал Басицу или ВБА-и, мораћете да укључите „референце“ за приступ одређеним функцијама.

Референце су нешто попут „библиотека“ испуњене функционалностима које можете искористити ако омогућите ту датотеку. Референце можете пронаћи у приказу за програмере кликом на Алати у менију, а затим кликните на Референце .

Оно што ћете пронаћи у овом прозору су све тренутно одабране референце за ваш тренутни ВБА пројекат.

Требало би да проверите ову листу јер непотребне референце могу да троше системске ресурсе. Ако не користите манипулацију КСМЛ датотекама, зашто би онда Мицрософт КСМЛ остао изабран? Ако не комуницирате са базом података, уклоните Мицрософт ДАО итд.

Ако нисте сигурни чему служе ове одабране референце, притисните Ф2 и видећете Објецт Екплорер. На врху овог прозора можете изабрати библиотеку референци за прегледавање.

Када изаберете, видећете све објекте и доступне функције на које можете кликнути да бисте сазнали више.

На пример, када кликнем на ДАО библиотеку, брзо постаје јасно да се овде ради о повезивању и комуникацији са базама података.

Смањивање броја референци које користите у свом програмском пројекту има смисла и помоћи ће да ваша укупна апликација ради ефикасније.

тастер прозора не ради виндовс 10

Програмирање у програму Екцел ВБА

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

Ипак, немојте ту стати. Изградите јаке темеље Екцел вештина помоћу а ВБА водич за почетнике . Затим наставите да учите о ВБА и макроима са ресурсима који ће вам помоћи да аутоматизујете своје табеле.

Објави Објави Твеет Емаил Да ли је вредно надоградње на Виндовс 11?

Виндовс је редизајниран. Али да ли је то довољно да вас убеди да пређете са Виндовс 10 на Виндовс 11?

Прочитајте следеће
Повезане теме
  • Продуктивност
  • Програмирање
  • Програмирање
  • Висуал Басиц програмирање
  • Мицрософт Екцел
О аутору Антхони Грант(Објављено 40 чланака)

Антхони Грант је слободни писац који се бави програмирањем и софтвером. Он се бави рачунарством и бави се програмирањем, Екцелом, софтвером и технологијом.

Више од Антхонија Гранта

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили