Оператори в Excel VBA

Знаците и ключовите думи, които използваме за работа с променлива във VBA, се наричат ​​VBA оператори. Например в редовете по -долу редове =, +,>, & са оператори.

sub Examp () a = 12 b = 10 c = a+b debug.print "Сумата от a и b е" & c end sub 

Има пет типа оператори във всеки език за програмиране, така че във VBA
1. Оператор на възлагане
2. Аритметичен оператор
3. Оператор за сравнение
4. Логически оператор
5. Оператор за свързване

Нека да разгледаме всеки тип оператор в Excel VBA.

1. Оператор на присвояване (=)

Това е първият оператор, който ще използвате във всеки език за програмиране. Във VBA се използва за присвояване на стойности на променливи. Това е "=" (равно на).

Използваме този оператор за присвояване на стойности на променливи в excel VBA. Използва се и като оператор за сравнение във VBA. Ще говорим за това по -късно в този урок.

Един прост пример е

sub test () a = 10 Range ("A1"). value = a end sub 

В горния пример първо използваме оператора за присвояване "=", за да присвоим стойност на променлива "a" и след това използваме оператора "=", за да присвоим стойност на "a" на стойността на Range ("A1").

2. Аритметични оператори

Аритметичните оператори са същите оператори, които използваме от детството, за да правим прости изчисления. В Excel VBA тези оператори се използват за извършване на изчисления на променливи и числа. Те са:

(+) Аритметично добавяне:Този оператор се използва за добавяне на две или повече числа или стойности на две или повече променливи. Редовете по -долу сумират стойностите на двете променливи и го отпечатват в клетката "A1".

Sub Test () a = 10 b = 12 Диапазон ("A1"). Стойност =a+b End Sub

A1 ще има 22. Този оператор работи и като оператор за конкатенация. Ако и двете, a и b ще имат низови стойности, тогава операторът + ще работи като оператор за конкатенация. Ще видим как, по -късно в статията.

(-) Аритметично изваждане:Този оператор се използва за изваждане на една стойност от друга стойност на променливите. Долният ред изважда стойността на a от b и я отпечатва в клетката "A1".

Sub Test () a = 10 b = 12 Диапазон ("A1"). Стойност =б-а End Sub

A1 на листа ще има 2.

(*) Аритметично умножение:Този оператор се използва за умножаване или получаване на произведение на две или повече числа или стойности на две или повече променливи. Редовете по -долу умножават стойностите на двете променливи и го отпечатват в клетката "A1".

Sub Test () a = 10 b = 12 Диапазон ("A1"). Стойност =a*b End Sub

Клетка А1 ще има стойност 120.

(/) Аритметично деление:Този оператор се използва за разделяне на една стойност от друга. Долната линия разделя стойността b на променлива a и я отпечатва в клетката "A1".

Sub Test () a = 10 b = 12 Диапазон ("A1"). Стойност =б/а End Sub

Клетка А1 ще има стойност 1.2.

(Mod) Оператор на аритметичен остатък във VBA: Докато повечето PL използват % (модул) за получаване на остатъка, във VBA използваме ключовата дума Мод Този оператор се използва за получаване на напомняне след разделяне на една стойност от друга. Долният ред разделя стойността b на променлива a и отпечатва напомнящата стойност в клетка A1.

Sub Test () a = 10 b = 4 Диапазон ("A1"). Стойност =a Mod b End Sub 

Клетка А1 ще има стойност 2.

(^) Аритметична експоненция:Този оператор се използва за получаване на степента на една стойност към друга. Редовете по -долу ни дават стойността 3 за експоненциална 4.

Sub Test () a = 3 b = 4 Диапазон ("A1"). Стойност =а^б End Sub

Клетка A1 ще има стойност 81 (3x3x3x3).

Тези оператори във VBA следват правилото BODMAS. Във VBA има само 6 аритметични оператора. Има някои оператори, които действат като два вида оператори като +. Ще научите за тях, докато преминете през този урок.

3. Оператори за сравнение

Когато искаме да сравним две стойности във VBA, използваме операторите за сравнение. Резултатът от оператора за сравнение винаги е булев. Ако твърдението е вярно, резултатът е TRUE. Ако изявлението е невярно, тогава стойността е False. Тези оператори често се използват при вземане на решения във VBA. Нека да видим какви са:

(=) Равно:Да, знакът = (равно на) се използва и като оператор за сравнение във VBA. Когато искаме да проверим дали двете променливи са равни или не, използваме този оператор за сравнение.

Sub Test () a = 3 b = 4 Ако a = b, тогава 'Той ще върне невярно MsgBox "A и b са равни." „това няма да бъде изпълнено. В противен случай MsgBox "A и b не са равни" End IF End Sub

В горния пример използваме оператора If и проверяваме дали стойностите на a и b са равни. Явно не са. Следователно изявлението Else се отпечатва.

Можете да го проверите, като просто използвате израза.

a = 3 b = 4 debug.print a = b

Това ще отпечата False в непосредствения прозорец.

(<) По -малко от:Това се използва за проверка дали лявата стойност е по -малка от дясната или не.

Подтест () a = 3 b = 4 Ако a

В горния пример проверяваме дали стойността на a е по -малка от b. Тъй като това е вярно, операторът if се изпълнява, а Else не.

Можете да го проверите, като просто използвате израза.

a = 3 b = 4 debug.print a<>

Това ще отпечата True в непосредствения прозорец.

(<=) По -малко или равно на:Това се използва за проверка дали лявата стойност е по -малка или равна на дясната или не.

Sub Test () a = 4 b = 4 Ако a <= b, тогава „Той ще върне True MsgBox„ The a е по -малко или равно на b. “ 'това ще бъде изпълнено. В противен случай MsgBox "A не е равно на или по -малко от b." „това няма да бъде изпълнено. End IF End Sub

В горния пример проверяваме дали стойността на a е по -малка от b. Тъй като това е вярно, операторът If се изпълнява, а Else не.

Можете да го проверите, като просто използвате израза.

a = 4 b = 4 debug.print a <-b

Това ще отпечата True в непосредствения прозорец.

(>) По -голям от:Това се използва за проверка дали лявата стойност е по -голяма от дясната или не.

Sub Test () a = 3 b = 4 Ако a> b, тогава „Той ще върне False MsgBox„ The a е по -голямо от b. “ „Това няма да бъде изпълнено. В противен случай MsgBox "A не е по -голямо от b." „Това ще бъде изпълнено. End IF End Sub

В горния пример проверяваме дали стойността на a е по -голяма от b. Тъй като това е False, операторът if няма да се изпълни, а Else го прави.

Можете да го проверите, като просто използвате израза.

a = 3 b = 4 debug.print a> b

Това ще отпечата False в непосредствения прозорец.

(> =) По -голямо от:Това се използва за проверка дали лявата стойност е по -голяма или равна на дясната или не.

Sub Test () a = 3 b = 4 Ако a> = b, тогава „Той ще върне False MsgBox„ The a е по -голямо или равно на b. “ „Това няма да бъде изпълнено. В противен случай MsgBox "A не е по -голямо или равно на b." „Това ще бъде изпълнено. Край АКО

В горния пример проверяваме дали стойността на a е по -голяма или равна на b. Тъй като това е False, операторът if няма да се изпълни, а Else го прави.

Можете да го проверите, като просто използвате израза.

a = 3 b = 4 debug.print a> = b

Това ще отпечата False в непосредствения прозорец.

() Не е равно на:Това се използва за проверка дали лявата стойност не е равна на дясната.

Sub Test () a = 3 b = 4 Ако ab тогава „Той ще върне True MsgBox„ The a не е равно на b “,„ Това ще бъде изпълнено. В противен случай MsgBox "A и b са равни." „Това няма да бъде изпълнено. End IF End Sub

В горния пример проверяваме дали стойността на a е не е равно на б. Тъй като това е вярно, операторът If ще се изпълни, а Else няма.

Можете да го проверите, като просто използвате израза.

a = 3 b = 4 debug.print ab

Това ще отпечата True в непосредствения прозорец.

Горните шест оператора се наричат ​​оператори за сравнение, тъй като ги използваме за сравняване на две стойности или променливи. Ще ги използвате много във VBA, за да вземате решения във VBA.

4. Логически оператори

Логическите оператори се използват за извършване на логически операции върху една или повече променливи. Резултатът от такива операции винаги води до TRUE или FALSE. Логическите оператори често (не винаги) се използват за проверка на повече от едно условие.

По -долу са логическите оператори, които използваме във VBA:

VBA И Оператор (И или *): Операторът VBA AND се използва, за да гарантира, че условията отляво и отдясно са True. Ако някое от условията е невярно, цялото твърдение ще доведе до невярно. Използваме ключовата дума И или знака * (звездичка) за И операции.

Проверете следното изявление:

Подтест () a = 10 b = 20 Ако a <15 и b <15 Тогава MsgBox "a и b и двете са по -малки от 15." „Това не се изпълнява. В противен случай MsgBox "Или a или b е по -голямо или равно на 15." „Това се изпълнява. End If End Sub 

Когато изпълним горния фрагмент, вторият оператор if не се изпълнява. Защото първото твърдение вляво е вярно, но изявлението вдясно е невярно. Следователно цялото изявление връща False.

В повечето езици символът & се използва като оператор AND, но не и във VBA. Във VBA можете да използвате оператора за умножение * (звездичка) като оператор AND, за да сте сигурни, че и двете условия са верни.

В горния пример можете да използвате по -долу израза if, за да направите същото.

Ако (a <15) * (b <15) Тогава

Трябва да използвате скоби, за да разделите условните изрази. В противен случай изявленията ще следват правилото BODMAS и резултатът ще бъде неточен.

Q1: Какъв ще бъде резултатът от изявлението по -долу? Кажете ми в секцията за коментари по -долу:

debug.print a10 И a = (b/2) И a<>

Когато стойността на a е 15 и b е 30. Запишете в секцията за коментари по -долу.

Оператор VBA ИЛИ (или или +): Операторът OR се използва, когато искаме да гарантираме, че условието Left е TRUE, или условието Right е TRUE. Ако някое от двете условия е вярно, резултатът ще бъде верен. Използваме ключовата дума OR между два логически израза. Можете също да използвате знака + (плюс) за операция ИЛИ. Просто се уверете, че използвате скобите правилно, за да направите изявленията ясни, докато използвате знак +.

Разгледайте следния код:

Подтест () a = 10 b = 20 Ако a <15 или b <15 Тогава MsgBox "А или b е по -малко от 15." „Това се изпълнява. В противен случай MsgBox "Нито a, нито b е по -малко от 15." „Това не се изпълнява. End If End Sub

Когато изпълним горния код, първото съобщение се показва, а второто съобщение се пропуска. Защото a е по -малко от 15, а b не е. Необходимо е само едно условие да бъде True с оператора OR, за да получи изхода като true.

Вие пишете изявлението като:

Ако (a <15) + (b <15) Тогава

Q2: Какъв ще бъде резултатът от изявлението по -долу? Кажете ми в секцията за коментари по -долу:

debug.print a10 Или a = (b/2) или a<>

Когато стойността на a е 10 и b е 5. Запишете в секцията за коментари по -долу.

VBA НЕ Оператор (Не): Операторът Not се използва за обратна булева стойност. С други думи, операторът с оператор Not връща True само ако изявлението преди него е False. Например, ако използвате ключовата дума Not преди True Statement, това ще доведе до False и обратно. Във VBA използваме Не ключова дума, за да проверите дали нещо не е това, което е True или False (?).

Подтест () a = 10 b = 10 Ако не a = b, тогава MsgBox "a и b не са равни." В противен случай MsgBox "a и b и двете са равни." 'Това се изпълнява End If End Sub

В горния код, изявлениеНе a = bще върне невярно. Първоначално a = b е вярно, но както използвахме Not преди него, резултатът е обърнат и изявлението се превръща в False. В горния пример сме използвали единствените изявления преди него. Можете да имате толкова изявления, колкото искате преди Оператор Not. Просто ги поставете в скоби.

Q3: Какъв ще бъде резултатът от изявлението по -долу? Кажете ми в секцията за коментари по -долу:

debug.print a10 Или не (a = (b/2) * a<>

Когато стойността на a е 10 и b е 5. Запишете в секцията за коментари по -долу.

5. Оператори за свързване (& или +)

Тези оператори се използват за свързване на низове. Символът & се използва за обединяване на текстове. Препоръчва се оператор за свързване на низове. Можете обаче да използвате знака +, за да свържете.

Знакът плюс свързва само две променливи, когато и двете са низове. Ако някой от низовете не е низ, знакът + ще работи като оператор за добавяне.

Вижте кода по -долу:

Sub test () a = "Exceltip" b = "е номер" c = 1 d = 2 Debug.print a & b & c 'това ще отпечата "Exceltip е номер 1" Debug.print a + b & c & d' това ще отпечата "Exceltip е номер 12 'Отстраняване на грешки. печат a + b + c' това ще бъде грешка. End Sub

В горния код първите два реда ще работят перфектно. В третия ред ще възникне грешка, защото се опитваме да добавим текст с числа. За конкатенация на числа винаги използваме & (усилвател).

Многофункционални оператори във VBA

Чрез горните примери трябва да сте научили, че има много оператори, които работят по различен начин в различни ситуации.

Знакът + работи като оператор за добавяне, докато работи с числа. Докато работите с булеви стойности, знакът плюс работи като оператор Or във VBA. Когато се използва с низови стойности, операторът плюс работи като оператор на конкатенация. Редовете по -долу са валидни:

Debug.Print 10 + 20 'отпечатва 30. + работи като оператор за добавяне. Debug.Print (1020) 'отпечатва True. + работи като оператор Или. Debug.Print "10" + "20" 'Отпечатва 1020. Знакът + работи като оператор за конкатенация. 

Знакът звездичка (*) работи като оператор за умножение, когато операндите са числови. Когато операндите са булеви, звездичката работи като And Operator.

Кодовете по -долу работят перфектно.

Debug.Print 10 * 20 'отпечатва 200. * работи като оператор за умножение. Debug.Print (1020) 'отпечатва False. Знакът + работи като оператор And. 

Така че да, момчета, това е всичко за операторите във VBA. Надявам се да е било полезно. Ако имате някакви съмнения относно операторите във VBA, попитайте в секцията за коментари по -долу.

Изявлението If ElseIf във VBA | В инструкцията If ElseIf следващото условие се проверява само когато предишното условие падне. Когато условие е съвпадение, кодът в този блок се изпълнява и контролата излиза от блока If.

Променлив обхват на Excel VBA | VBA също има спецификатори на обхвата. Тези спецификатори на обхвата могат да се използват за задаване на видимост/обхват на променлива в Excel VBA.

VBA Изберете декларация за случай | Изявленията за избор на случай са полезни, когато имате твърде много условия за проверка. Те са отлични заместители на множество изрази If ElseIf.

Използване на цикъл във VBA в Microsoft Excel | Циклите във VBA ни позволяват да правим подобна задача отново и отново, без да повтаряме кода. В Excel VBA има 3 вида цикли.

Аргументи ByRef и ByVal | Когато аргумент се предава като аргумент ByRef на различна под -функция или функция, се изпраща препратката към действителната променлива. Всички промени, направени в копието на променливата, ще бъдат отразени в първоначалния аргумент.

Показване на съобщение в лентата на състоянието на Excel VBA Лентата на състоянието в Excel може да се използва като монитор на кодове. Когато вашият VBA код е дълъг и изпълнявате няколко задачи с помощта на VBA, често деактивирате актуализацията на екрана, така че да не виждате този екран да трепти

Изключете предупредителните съобщения с помощта на VBA в Microsoft Excel 2016 | Този код не само деактивира сигналите за VBA, но също така увеличава ефективността на кода във времето. Да видим как.

Популярни статии:

50 преки пътища в Excel за повишаване на вашата производителност | Бъдете по -бързи в задачата си. Тези 50 преки пътища ще ви накарат да работите още по -бързо в Excel.

Функцията VLOOKUP в Excel | Това е една от най -използваните и популярни функции на excel, която се използва за търсене на стойност от различни диапазони и листове.

COUNTIF в Excel 2016 | Пребройте стойностите с условия, използвайки тази невероятна функция. Не е необходимо да филтрирате данните си, за да преброите конкретна стойност. Функцията Countif е от съществено значение за подготовката на вашето табло.

Как да използвате функцията SUMIF в Excel | Това е друга основна функция на таблото. Това ви помага да обобщите стойностите при конкретни условия.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave