Наредба о додељивању је ВБА изјава која додељује резултат израза променљивој или објекту. Екцел-ов систем помоћи дефинише израз израз као
„… комбинација кључних речи, оператора, променљивих и константи која даје стринг, број или објекат. Израз се може користити за извођење прорачуна, манипулацију знаковима или тестирање података."
Велики део вашег рада у ВБА укључује развој (и отклањање грешака) израза. Ако знате како да креирате формуле у Екцел-у, нећете имати проблема са креирањем израза. Са формулом радног листа, Екцел приказује резултат у ћелији. ВБА израз, с друге стране, може бити додељен променљивој.
Примери исказа задатка
У примерима исказа доделе који следе, изрази су десно од знака једнакости:
к = 1
х = х + 1
к = (и * 2) / (з * 2)
Цена куће = 375000
ФилеОпен = Тачно
Опсег(„Година“).Вредност = 2016
Изрази могу бити сложени колико год вам је потребно; користите знак за наставак реда (размак праћен доњом цртом) да бисте олакшали читање дугачких израза.
Изрази често користе функције: уграђене функције ВБА, функције Екцеловог радног листа или функције које развијате помоћу ВБА.
О том знаку једнакости
Као што можете видети у претходном примеру, ВБА користи знак једнакости као свој оператор додељивања. Вероватно сте навикли да користите знак једнакости као математички симбол за једнакост. Према томе, изјава о задатку попут следеће може изазвати да подигнете обрве:
з = з + 1
У ком лудом универзуму је з једнако самом себи плус 1? Одговор: Нема познатог универзума. У овом случају, израз доделе (када се изврши) повећава вредност з за 1. Дакле, ако је з 12, извршавање наредбе чини з једнако 13. Само запамтите да додела користи знак једнакости као оператор, а не симбол једнакости.
Глатки оператери
Оператори играју главне улоге у ВБА. Поред оператора знака једнакости, ВБА нуди неколико оператора. Ово би требало да вам буде познато јер су то исти оператори који се користе у формулама радног листа (осим за Мод оператор).
Функција |
Симбол оператера |
Додатак |
+ |
Множење |
* |
дивизије |
/ |
Одузимање |
– |
Експоненцијација |
^ |
Конкатенација низова |
& |
Целобројно дељење (резултат је увек цео број) |
|
Модуло аритметика (враћа остатак
операције дељења ) |
Мод |
Када пишете Екцел формулу, вршите модуло аритметику помоћу функције МОД. На пример, следећа формула враћа 2 (остатак када поделите 12 са 5):
=МОД(12,5)
У ВБА, Мод оператор се користи овако (а з има вредност 2):
з = 12 Мод 5
Термин конкатенација је програмер који говори за „удруживање“. Дакле, ако спајате низове, комбинујете низове да бисте направили нови и побољшани стринг.
ВБА такође пружа пун скуп логичких оператора. Од њих се најчешће користе Нот, Анд и Ор.
Оператер |
Шта ради |
Не |
Изводи логичку негацију на изразу |
И |
Изводи логичку везу на два израза |
Ор |
Изводи логичку дисјункцију на два израза |
Ксор |
Изводи логичко изузимање за два израза |
Екв |
Изводи логичку еквивалентност за два израза |
Имп |
Изводи логичку импликацију на два израза |
Редослед приоритета за операторе у ВБА је потпуно исти као у Екцел формулама. Експоненцијалност има највећи приоритет. Следе множење и дељење, а затим сабирање и одузимање. Можете користити заграде да промените природни редослед приоритета, тако да све што је у заградама буде испред било ког оператора. Погледајте овај код:
к = 3
и = 2
з = к + 5 * у
Када се изврши претходни код, која је вредност з? Ако сте одговорили на 13, добићете златну звездицу која доказује да разумете концепт приоритета оператора. Ако сте одговорили на 16, прочитајте ово: Прво се изводи операција множења (5 * и), а тај резултат се додаје на к.
Многи програмери имају тенденцију да користе заграде чак и када нису обавезне. На пример, у стварном животу та последња изјава о задатку би се могла написати овако:
з = к + (5 * и)
Немојте се стидети да користите заграде чак и ако нису обавезне — посебно ако то чини ваш код лакшим за разумевање. ВБА није брига ако користите додатне заграде.