Инструкцията за присвояване е VBA инструкция, която присвоява резултата от израз на променлива или обект. Помощната система на Excel дефинира термина израз като
„… комбинация от ключови думи, оператори, променливи и константи, която дава низ, число или обект. Израз може да се използва за извършване на изчисление, манипулиране на знаци или тестови данни.
Голяма част от работата ви във VBA включва разработване (и отстраняване на грешки) на изрази. Ако знаете как да създавате формули в Excel, няма да имате проблеми със създаването на изрази. С формула на работен лист Excel показва резултата в клетка. VBA израз, от друга страна, може да бъде присвоен на променлива.
Примери за декларации за присвояване
В примерите за оператори за присвояване, които следват, изразите са вдясно от знака за равенство:
х = 1
х = х + 1
x = (y * 2) / (z * 2)
Разходи за къща = 375000
FileOpen = Вярно
Диапазон („TheYear“). Стойност = 2016
Изразите могат да бъдат толкова сложни, колкото трябва да бъдат; използвайте символа за продължаване на реда (интервал, последван от долно черта), за да направите дългите изрази по-лесни за четене.
Често изразите използват функции: вградени функции на VBA, функции на работния лист на Excel или функции, които разработвате с VBA.
Относно този знак за равенство
Както можете да видите в предходния пример, VBA използва знака за равенство като свой оператор за присвояване. Вероятно сте свикнали да използвате знак за равенство като математически символ за равенство. Следователно изявление за задание като следното може да ви накара да повдигнете вежди:
z = z + 1
В коя луда вселена z е равно на себе си плюс 1? Отговор: Не е известна вселена. В този случай операторът за присвояване (когато е изпълнен) увеличава стойността на z с 1. Така че, ако z е 12, изпълнението на оператора прави z равно на 13. Само не забравяйте, че присвояването използва знака за равенство като оператор, а не символ на равенство.
Плавни оператори
Операторите играят основна роля във VBA. Освен оператора със знак за равенство, VBA предоставя няколко оператора. Те трябва да са ви познати, защото са същите оператори, използвани във формулите на работния лист (с изключение на оператора Mod).
Функция |
Символ на оператора |
Добавяне |
+ |
Умножение |
* |
дивизия |
/ |
Изваждане |
– |
Експоненция |
^ |
Конкатенация на низове |
& |
Целочислено деление (резултатът винаги е цяло число) |
|
Модулна аритметика (връща остатъка от
операция от деление ) |
Мод |
Когато пишете формула на Excel, вие извършвате модулно аритметика, като използвате функцията MOD. Например, следната формула връща 2 (остатъкът, когато разделите 12 на 5):
=MOD(12,5)
Във VBA операторът Mod се използва по следния начин (а z има стойност 2):
z = 12 Мод 5
Терминът конкатенация е, че програмистите говорят за „съединяване“. По този начин, ако конкатенирате низове, вие комбинирате низове, за да създадете нов и подобрен низ.
VBA също така предоставя пълен набор от логически оператори. От тях най-често се използват Not, And и Or.
Оператор |
Какво прави |
Не |
Извършва логическо отрицание върху израз |
И |
Извършва логическа връзка върху два израза |
Или |
Извършва логическа дизюнкция на два израза |
Xor |
Извършва логическо изключване на два израза |
Eqv |
Извършва логическа еквивалентност на два израза |
Имп |
Извършва логическа импликация върху два израза |
Редът на приоритет за операторите във VBA е точно същият като във формулите на Excel. Възлагането в степен има най-висок приоритет. Следват умножение и деление, последвани от събиране и изваждане. Можете да използвате скоби, за да промените естествения ред на приоритет, така че всичко, което е поставено в скоби, да е преди всеки оператор. Разгледайте този код:
х = 3
y = 2
z = x + 5 * y
Когато се изпълни предходният код, каква е стойността на z? Ако сте отговорили на 13, получавате златна звезда, която доказва, че разбирате концепцията за предимство на оператора. Ако сте отговорили на 16, прочетете това: Операцията за умножение (5 * y) се извършва първо и този резултат се добавя към x.
Много програмисти са склонни да използват скоби, дори когато не са задължителни. Например, в реалния живот това последно изявление за задание може да бъде написано така:
z = x + (5 * y)
Не се срамувайте да използвате скоби, дори ако не са задължителни – особено ако това прави кода ви по-лесен за разбиране. VBA не се интересува дали използвате допълнителни скоби.