Pri písaní kódu VBA v Exceli sa na každom kroku používa sada vstavaných operátorov. Tieto operátory sa delia na matematické, reťazcové, porovnávacie a logické operátory. Ďalej sa podrobne pozrieme na každú skupinu operátorov.

Matematické operátory

Hlavné matematické operátory VBA sú uvedené v tabuľke nižšie.

Pravý stĺpec tabuľky zobrazuje predvolenú prioritu operátorov bez zátvoriek. Pridaním zátvoriek do výrazu môžete podľa potreby zmeniť poradie, v ktorom sa príkazy VBA vykonávajú.

Operátory reťazcov

Základným operátorom reťazca v Excel VBA je operátor zreťazenia & (zlúčiť):

Porovnávacie operátory

Porovnávacie operátory sa používajú na porovnanie dvoch čísel alebo reťazcov a návrat boolovská hodnota typu Boolean(Pravda alebo lož). Hlavné porovnávacie operátory Excel VBA sú uvedené v tejto tabuľke:

Logické operátory

Logické operátory, podobne ako porovnávacie operátory, vracajú boolovskú hodnotu typu Boolean(Pravda alebo lož). Hlavné logické operátory Excel VBA sú uvedené v tabuľke nižšie:

V tabuľke vyššie nie sú uvedené všetky logické operátory dostupné vo VBA. Úplný zoznam logické operátory nájdete na stránke Visual Basic Developer Center.

Vstavané funkcie

Vo VBA je k dispozícii veľa vstavaných funkcií, ktoré možno použiť pri písaní kódu. Nižšie sú uvedené niektoré z najčastejšie používaných:

Funkcia Akcia
abs Vráti absolútnu hodnotu daného čísla.
  • Abs (-20) vráti hodnotu 20;
  • abs(20) vráti hodnotu 20.
Chr Vráti znak ANSI zodpovedajúci číselnej hodnote parametra.
  • Chr(10) vráti zalomenie riadku;
  • Chr(97) vráti znak a.
Dátum Vráti aktuálny systémový dátum.
DateAdd K danému dátumu pridá zadaný časový interval. Syntax funkcie:

DateAdd( interval , číslo , dátum )

Kde je argument interval určuje typ časového intervalu pridaného k danému dátum vo výške uvedenej v argumentácii číslo .

Argumentovať interval môže nadobudnúť jednu z nasledujúcich hodnôt:

  • DateAdd("d", 32, "01/01/2015") pridá 32 dní k dátumu 01.01.2015 a vráti tak dátum 02.02.2015.
  • DateAdd("ww", 36, "01/01/2015") pridá 36 týždňov k dátumu 01.01.2015 a vráti dátum 09.09.2015.
DateDiff Vypočíta počet zadaných časových intervalov medzi dvoma danými dátumami.
  • DateDiff("d", "01/01/2015", "02/02/2015") vypočíta počet dní medzi 01.01.2015 a 02.02.2015, vráti 32.
  • DateDiff("ww", "01/01/2015", "03/03/2016") vypočíta počet týždňov medzi 01.01.2015 a 03.03.2016, vráti 61.
deň Vráti celé číslo zodpovedajúce dňu v mesiaci v danom dátume.

Príklad: deň („29/01/2015“) vráti číslo 29.

hodina Vráti celé číslo zodpovedajúce počtu hodín v danom čase.

Príklad: Hodina („22:45:00“) vráti číslo 22.

InStr Ako argumenty berie celé číslo a dva reťazce. Vráti polohu výskytu druhého reťazca v rámci prvého, pričom vyhľadávanie začne na pozícii zadanej celým číslom.
  • InStr(1, “Tu je hľadané slovo”, “slovo”) vráti číslo 13.
  • InStr(14, “Tu je hľadané slovo a tu je ďalšie hľadané slovo”, “slovo”) vráti číslo 38.

Poznámka: Argument číslo nemusí byť zadaný, v takom prípade vyhľadávanie začína od prvého znaku reťazca uvedeného v druhom argumente funkcie.

int Vráti celú časť daného čísla.

Príklad: Int (5,79) vráti výsledok 5.

Isdate sa vracia Pravda ak je daná hodnota dátum, príp Nepravdivé– ak dátum nie je.
  • IsDate(“01/01/2015”) sa vracia Pravda;
  • IsDate(100) sa vracia Nepravdivé.
IsError sa vracia Pravda ak je daná hodnota chybou, príp Nepravdivé– ak to nie je chyba.
Chýba Názov voliteľného argumentu procedúry sa odovzdá ako argument funkcii. Chýba sa vracia Pravda ak nebola odovzdaná žiadna hodnota pre daný argument postupu.
IsNumeric sa vracia Pravda ak možno danú hodnotu považovať za číslo, inak vráti Nepravdivé.
Vľavo Vráti zadaný počet znakov od začiatku daného reťazca. Syntax funkcie je takáto:

Vľavo( riadok , dĺžka )

kde riadok- toto je originálny reťazec, a dĺžka je počet znakov, ktoré sa majú vrátiť, počítané od začiatku reťazca.

  • Left("abvgDeZicleMn", 4) vráti reťazec "abcg";
  • Left("abvgDeZicleMn", 1) vráti reťazec "a".
Len Vráti počet znakov v reťazci.

Príklad: Len("abcdej") vráti číslo 7.

mesiac Vráti celé číslo zodpovedajúce mesiacu daného dátumu.

Príklad: Mesiac („29/01/2015“) vráti hodnotu 1.

Stred Vráti zadaný počet znakov zo stredu daného reťazca. Syntax funkcie:

Stred( riadok , Štart , dĺžka )

kde riadok je pôvodný reťazec Štart- polohu začiatku reťazca, ktorý sa má extrahovať, dĺžka je počet znakov, ktoré sa majú extrahovať.

  • Mid("abvgDeZicleMn", 4, 5) vráti reťazec "kde";
  • Mid("abvgDeZicleMn", 10, 2) vráti reťazec "cl".
Minúta Vráti celé číslo zodpovedajúce počtu minút v danom čase. Príklad: Minúta("22:45:15") vráti hodnotu 45.
Teraz Vráti aktuálny systémový dátum a čas.
Správny Vráti zadaný počet znakov od konca daného reťazca. Syntax funkcie:

Správny( riadok , dĺžka )

Kde riadok je pôvodný reťazec a dĺžka je počet znakov na extrahovanie, počítaný od konca daného reťazca.

  • Right("abvgDeZicleMn", 4) vráti reťazec "clmn";
  • Right("abvgDeZicleMn", 1) vráti reťazec "n".
Po druhé Vráti celé číslo zodpovedajúce počtu sekúnd v danom čase.

Príklad: Druhý („22:45:15“) vráti hodnotu 15.

sqr Vráti druhú odmocninu z číselnej hodnoty odovzdanej v argumente.
  • Sqr(4) vráti 2;
  • Štvorec (16) vráti hodnotu 4.
Čas Vráti aktuálny systémový čas.
Ubound Vráti horný index zadanej dimenzie poľa.

Poznámka: Pre viacrozmerné polia ako voliteľný argument môžete určiť, ktorý index dimenzie sa má vrátiť. Ak nie je zadaný, predvolená hodnota je 1.

Operátor priradenia (=)

Operátor priradenia sa používa na priradenie výsledku výrazu k premennej.

Operátor priradenia má dve syntaktické formy:

varname = výraz

varname- ľubovoľná premenná VBA

výraz- akýkoľvek výraz VBA

Pri vykonávaní príkazu priradenia VBA najskôr vyhodnotí výraz napravo od príkazu priradenia a potom uloží výsledok výrazu do premennej, ktorej názov je naľavo od znamienka rovnosti.

X = 5 + 7; Y = X + 5; Z = X - Y; A=B; ja = ja + 1

Začínajúci používatelia niekedy nechápu význam poslednej operácie priradenia, keď ľavá aj pravá časť operácie obsahuje rovnakú premennú. V tomto prípade sa najprv výsledok vyhodnotenia výrazu na pravej strane priraďovacieho operátora umiestni do medzipamäťovej bunky a následne sa tento výsledok priradí k premennej na ľavej strane.

Napríklad, ak v príkaze priradenia A = A +5 obsahovala premenná A pred operáciou priradenia hodnotu 7, potom po operácii bude obsahovať hodnotu 12 (7+5).

Malo by sa pamätať:

· Ľubovoľnú číselnú premennú (alebo výraz) môžete priradiť akejkoľvek inej premennej číselného typu (alebo premennej typu Variant);

· Ak zadanej premennej priradíte číselný výraz s nižšou presnosťou (napríklad Double - Long), VBA zaokrúhli hodnotu výrazu tak, aby zodpovedala presnosti premennej, ktorá má novú hodnotu;

Ak premenná typu String pridelených typ premennej Variant obsahujúci číslo, VBA automaticky prevedie toto číslo na reťazec.

Operátor sčítania (+)

Operátor sčítania vykoná jednoduché sčítanie. Oba operandy musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na číslo. Operátor sčítania možno použiť aj na vykonávanie aritmetických operácií s údajmi dátumu.

Typ údajov výsledku sčítacieho výrazu je zvyčajne rovnaký ako najpresnejší typ v tomto výraze. Existujú však výnimky:

· Výsledkom pridania typu Single a Long bude Double;

· Výsledkom pridania typu Dátum k akémukoľvek inému typu údajov bude vždy Dátum;

· Ak výsledok presiahne rozsah typu Integer, VBA ho skonvertuje na Long;

· Ak výsledok presahuje typy Long, Single, Date, potom ho VBA skonvertuje na Double;

· Ak má ktorýkoľvek operand v sčítacom výraze hodnotu Null, potom je výsledok sčítacieho výrazu tiež Null.

Pripomeňte si poradie zvyšovania presnosti pre číselné typy údajov: Byte, Celé číslo, Dlhé, Jednoduché, Dvojité, Mena.

Malo by sa povedať, že je potrebné jasne pochopiť, ako VBA konvertuje typy údajov v dôsledku aritmetických operácií. V budúcnosti to pomôže vyhnúť sa mnohým „zbytočným“ chybám pri písaní kódu.

Operátor odčítania (-)

Operátor odčítania robí dve veci: používa sa na odčítanie jedného čísla od druhého; označuje jednočlenné znamienko mínus (toto je znamienko mínus, ktoré je umiestnené pred číslom, čím označuje, že ide o záporné číslo). Vloženie unárneho mínusu pred premennú alebo výraz je rovnaké ako vynásobenie tohto čísla číslom -1.

Oba operandy vo výraze odčítania musia byť číselné premenné (výrazy) alebo reťazcové výrazy, ktoré VBA dokáže previesť na číslo. Na prácu s dátumami môžete použiť operátor odčítania.

VBA používa rovnaké pravidlá na určenie typu údajov výsledku výrazu odčítania ako pre výrazy, ktoré používajú operátor sčítania. Je tu však dodatok:

· Ak sú obidva operandy vo výraze typu Date, výsledok výrazu bude typu Double.

Operátor násobenia (*)

Operátor násobenia násobí dve čísla – výsledkom násobenia je súčin dvoch operandov. Oba operandy vo výraze násobenia musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na číslo.

VBA sa riadi rovnakými pravidlami na určenie typu údajov výsledku výrazu násobenia ako pre výrazy, ktoré používajú operátor sčítania. Vo výrazoch násobenia sa všetky premenné Variant, ktoré obsahujú hodnoty dátumu, skonvertujú na číselné hodnoty.

Operátor divízie (/)

Operátor delenia s pohyblivou rádovou čiarkou vykonáva obvyklé aritmetické delenie svojich operandov.

Vo výrazoch delenia sa prvý operand delí druhým operandom - výsledkom delenia je kvocient.

Oba operandy vo výraze delenia s pohyblivou rádovou čiarkou musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže skonvertovať na číslo.

Ak je aspoň jeden operand vo výraze delenia typu Null, potom výsledok delenia bude tiež Null.

Typ údajov operácie delenia s pohyblivou rádovou čiarkou je Double, okrem:

Oba operandy vo výraze delenia sú typu Integer alebo Single - výsledok Single;

Ak výsledok výrazu nepresahuje rozsah hodnôt pre typ Single.

Celočíselné delenie (\)

Delenie celým číslom sa líši od delenia s pohyblivou rádovou čiarkou tým, že jeho výsledkom je vždy celé číslo bez zlomkovej časti.

Oba operandy vo výraze celočíselného delenia musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže skonvertovať na číslo.

Pred vykonaním operácie delenia celého čísla VBA zaokrúhli každý operand na číslo typu Integer alebo Long (rovnaký typ ako výsledok celočíselného delenia).

VBA zahodí (ale nezaokrúhli!) akýkoľvek zlomkový zvyšok výsledku celočíselného delenia. Napríklad výrazy 22\5 a 24\5 budú mať rovnaký výsledok = 4.

Ak je aspoň jeden operand vo výraze celočíselného delenia typu Null, potom je výsledok delenia tiež Null.

Modulo Division (Mod)

Modulo delenie, ako to bolo, dopĺňa celočíselné delenie. Pri delení modulo výraz vráti iba zvyšok operácie delenia ako celé číslo.

22 Mod 5 = 2

24 Mod 5 = 4

25 Mod 5 = 0

Zvyšné vlastnosti delenia modulo sú totožné s celočíselným delením.

Umocnenie (^)

Operátor umocnenia zvýši číslo na mocninu.

5 ^ 3 =125

Oba operátory vo výraze umocňovania musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na čísla.

Operand naľavo od operátora umocňovania môže byť záporné číslo iba vtedy, ak je operand napravo celé číslo.

Výsledok výrazu je typu Double.

Ak je aspoň jeden operand vo výraze typu Null, potom výsledok umocnenia bude tiež Null.

Zhrňme si vyššie uvedené:

LOGICKÉ OPERÁTORY VBA

Ako operand pre logický operátor môžete použiť ľubovoľný platný výraz, ktorý má boolovský výsledok, ako aj číslo, ktoré možno skonvertovať na boolovskú hodnotu.

Výsledkom logickej operácie je hodnota typu Boolean (alebo Null, ak je aspoň jeden z operandov Null).

Logický operátor AND

SYNTAX:

Operand_1 A Operand_2

Operátor AND vykonáva logické spojenie.

Výsledok tejto operácie je True iba vtedy, keď sú oba operandy True, inak False.

pravdivostná tabuľka

Operátor AND možno použiť na viacerých operandoch:

(5<7) AND (4>3) A (5=6) výsledok bude False

Bez ohľadu na počet operandov je výsledkom log A operácie bude True iba vtedy, ak sa všetky operandy výrazu vyhodnotia ako True. V každom inom prípade bude výsledok nepravdivý. Všimnite si, že operandy sú uzavreté v zátvorkách. VBA najprv vyhodnotí hodnotu každého operandu v zátvorkách a potom celý výraz.

Logický operátor OR

SYNTAX:

Operand_1 ALEBO Operand_2

Vykonáva operátor OR logická disjunkcia.

Výsledok tejto operácie je True, ak je aspoň jeden z operandov True, inak False.

pravdivostná tabuľka

Operátor OR možno použiť na viacerých operandoch:

(5<7) OR (4>3) ALEBO (5=6) výsledok bude True

Bez ohľadu na počet operandov bude výsledok operácie logického OR vždy True, ak sa aspoň jeden z operandov výrazu vyhodnotí ako True. V opačnom prípade bude výsledok nepravdivý.

Operátory AND a OR je možné kombinovať:

((5<7) AND (4>3)) ALEBO (5=6) výsledok bude True

Booleovský operátor NOT

SYNTAX:

NIE Operand

NIE Operátor vystupuje logická negácia.

Operátor NOT používa iba jeden operand.

pravdivostná tabuľka

Operátory AND OR NOT možno kombinovať:

((5<7) AND (4>3)) ALEBO NIE (5=6) výsledok bude True

Logický operátor XOR

SYNTAX:

Operand_1 XOR Operand_2

Vykonáva sa operátor XOR logická výnimka.

Výsledok tejto operácie je True, ak majú operandy rôzne významy, inak - Nepravda.

pravdivostná tabuľka

((5<7) AND (4>3)) ALEBO NIE (5=6) Výsledok XOR (5=5) je Nepravda

Logický operátor EQV

SYNTAX:

Operand_1 EQV Operand_2

Operátor EQV je prevádzkovateľ logická ekvivalencia.

Výsledok tejto operácie je True, ak majú operandy rovnakú hodnotu, inak False.

pravdivostná tabuľka

((5<7) AND (4>3)) ALEBO NIE (5=6) EQV (5=5) bude mať za následok hodnotu True.

Porovnávacie operátory

Zvyčajne sa porovnávacie operácie používajú v cyklických príkazoch na prijatie určitého rozhodnutia o ďalšom priebehu operácií.

Výsledkom akejkoľvek porovnávacej operácie je boolovská hodnota: True, False.

Ak sú oba operandy v porovnávacom výraze rovnakého typu údajov, VBA vykoná jednoduché porovnanie tohto typu.

Ak oba operandy v porovnávacom výraze majú špecifické typy a tieto typy nie sú kompatibilné, VBA vydá chybu nesúladu typu.

Ak jeden alebo oba operandy v porovnávacom výraze sú premenné typu Variant, VBA sa pokúsi skonvertovať typ Variant na nejaký kompatibilný typ.

Operátory VBA: Aritmetika, Boolean, Porovnania, Priradenia

Operátor je najmenšia jednotka kódu VBA, ktorá sa môže spustiť. Príkaz môže deklarovať alebo definovať premennú, nastaviť voľbu kompilátora VBA alebo vykonať nejakú akciu v programe.

Vo VBA je iba 7 aritmetických operátorov. Štyri štandardné: sčítanie (+), odčítanie (-), násobenie (*), delenie (/) a tri ďalšie:

  • napríklad umocňovanie (^). 2^3 = 8 ;
  • celočíselné delenie (\). Vydelí prvé číslo druhým, zahodí (nie zaokrúhľuje) zlomková časť. Napríklad, 5\2 = 2 ;
  • modulo delenie (Mod). Vydelí prvé číslo druhým a vráti iba zvyšok delenia. Napríklad, 5 Mod 2 = 1.

Operátor priradenia vo VBA je znamienko rovnosti. Dá sa to napísať takto:

Nech nVar = 10

alebo ešte jednoduchšie:

nvar = 10

V druhom prípade si nezamieňajte znamienko rovnosti s operátorom rovná sa.

Výraz

nvar = 10

znamená "nastaviť premennú nVar na 10" a ak riadok vyzerá takto:

Ak (nVar = 10)

znamená to "ak je hodnota premennej nVar rovná 10".

Ak potrebujete priradiť objekt k premennej, potom sa to robí inými spôsobmi.

Vo VBA je iba 8 porovnávacích operátorov:

  • rovnosť (=), napr. Ak (nVar = 10);
  • väčšie ako a menšie ako (> a<), например, Ak (nVar > 10);
  • väčšie alebo rovné a menšie alebo rovné (>= a<=), например, Ak (nVar >= 10);
  • nerovná sa (<>), napríklad, If(nVar<>10) ;
  • porovnávanie objektov (Is). Určuje, či objektové premenné odkazujú na rovnaký objekt alebo na iné, napr. If(obj1 je obj2);
  • podobnosť (Páči sa mi). Porovná objekt reťazca so vzorom a určí, či sa vzor zhoduje.

Operátory porovnávania vždy vrátia hodnotu true alebo false - true, ak je tvrdenie pravdivé, a nepravdu, ak je nepravdivé.

Trochu o porovnaní hodnôt reťazcov:

  • pri porovnávaní hodnôt reťazcov sa rozlišujú malé a veľké písmená;
  • zohľadňujú sa aj medzery v hodnotách reťazca;
  • pri porovnávaní textové reťazceštandardne viac/menej sa porovnávajú jednoducho binárne kódy znaky - čo viac či menej. Ak potrebujete použiť poradie v abecede, môžete použiť príkaz

Možnosť Porovnať text

Trochu viac o operátorovi Like. Jeho všeobecná syntax vyzerá takto

Výraz1 Ako Výraz2

V tomto prípade je Expression1 ľubovoľný textový výraz VBA a Expression2 je šablóna, ktorá sa odovzdá operátoru Like. V tomto vzore môžete použiť špeciálne zástupné znaky (pozri tabuľku 3.1)

Tab. 3.1 Zástupné znaky pre operátora LIKE

Veľmi často sa pri testovaní niekoľkých podmienok používajú logické operátory:

  • AND - logické AND, obe podmienky musia byť pravdivé;
  • OR - logické ALEBO, aspoň jedna z podmienok musí byť pravdivá;
  • NOT - logická negácia, vráti TRUE, ak je podmienka nepravdivá;
  • XOR je logická výnimka. Vo výraze E1 XOR vráti E2 hodnotu TRUE, ak iba E1 = TRUE alebo iba E2 = TRUE, inak FALSE;
  • EQV - ekvivalencia dvoch výrazov, vráti TRUE, ak majú rovnakú hodnotu;
  • IMP - implikácia, vráti FALSE, ak E1 = TRUE a E2 = FALSE, inak TRUE.

Musíte si zapamätať AND, OR, NOT, iné logické operátory sa používajú zriedka.

Takmer každý program VBA používa operátory zreťazenia. Vo VBA sú dve - + alebo &. Odporúča sa vždy používať a pretože:

  • pri použití & sa vykoná automatická konverzia číselných hodnôt​​na reťazce - nehrozí nebezpečenstvo omylu;
  • pri použití operátora + pridanie hodnoty reťazca k hodnote typu Null dáva hodnotu Null.

MsgBox "Správa používateľovi" & vUserName

Poradie, v ktorom sú operátory aplikované, je možné ovládať pomocou zátvoriek.

Pozrime sa bližšie na to, ako VBA vykonáva aritmetické operácie, ako je sčítanie, odčítanie, násobenie, delenie a umocňovanie, ako aj špeciálne operácie, ako je celočíselné delenie a modulo. V tabuľke nižšie sú uvedené operačné znaky používané pri písaní aritmetických výrazov VBA.

Výraz je hodnota alebo skupina hodnôt, ktorá vyjadruje jednu hodnotu. Výsledkom výrazu je jedna hodnota určitého typu údajov. Znaky (označenia) operácií sa používajú na ovládanie určitých hodnôt vo výrazoch. Na priradenie výsledku výrazu k premennej sa používa operátor priradenia (=), ktorý ukladá akúkoľvek hodnotu reprezentovanú výrazom napravo od operátora priradenia v pamäťovom mieste, na ktoré odkazuje premenná naľavo od tohto operátora.

Vo všetkých nižšie uvedených operáciách musia byť oba operandy číselné výrazy alebo reťazce, ktoré VBA dokáže skonvertovať na číslo.

Doplnenie

Znamienko (+) sa používa na vykonanie operácie sčítania. Termíny musia byť číselné výrazy, reťazce, ktoré VBA dokáže previesť na čísla, alebo dátumy, ktoré možno použiť aj na aritmetiku.

Sub Slozhenie() "Príklad aritmetického výrazu so znamienkom "+" Dim A1, A2, A3 As Integer "deklarovanie premenných A1=1 "priradenie hodnoty 1 premennej A1 A2=2 "pridelenie hodnoty 2 premennej A2 A3=A1+A2 "priradenie výsledku pridať premennú A3 MsgBox A3 "Výstup A3 v dialógovom okne End Sub

Dátový typ výsledku sčítacieho výrazu je zvyčajne rovnaký ako najpresnejší typ v tomto výraze, s niekoľkými výnimkami. Všetky výnimky z tohto pravidla sú jasne uvedené v príkladoch.

Odčítanie

Znamienko (-) sa používa na vykonanie operácie odčítania, ako aj na označenie záporných čísel (ak je umiestnené pred premennou alebo výrazom a znamená to isté ako násobenie -1). Znamienko mínus, ktoré je umiestnené pred číslom na označenie záporného čísla, sa nazýva unárne znamienko mínus.

Na určenie typu údajov výsledku výrazu odčítania sa VBA riadi rovnakými pravidlami ako pre výrazy, ktoré používajú znamienko operátora sčítania, existujú však dve ďalšie pravidlá.

Pravidlo 1. Ak je jeden z operandov vo výraze odčítania typu Dátum, potom výsledok výrazu bude tiež typu Dátum.

Pravidlo 2. Ak sú obidva operandy vo výraze odčítania typu Dátum, potom výsledok výrazu bude typu Double.

Sub Vychitanie() "Príklad aritmetického výrazu so znamienkom "-" Dim D1, D2 As Date "deklarácia premennej D1=Teraz "priradenie hodnoty aktuálny dátum premenná D1 D2=Now-5 "priradiť hodnotu dátumu premennej D2 MsgBox TypeName(D2), vbOKOnly, "Now-5" MsgBox TypeName(D1-D2), vbOKOnly, "D1-D2" End Sub

Násobenie

Znamienko (*) sa používa na vykonanie operácie násobenia, výsledkom tejto operácie je súčin operandov. Na určenie typu údajov výsledku výrazu násobenia používa VBA rovnaké pravidlá ako pre výrazy, ktoré používajú sčítanie. Vo výrazoch násobenia sa všetky premenné Variant obsahujúce hodnoty dátumu skonvertujú na číselné hodnoty.

"Príklad aritmetických výrazov so znamienkom "*" 4*10 "vynásobiť 4 10 MyVar*2 "vynásobiť MyVar 2 MyVar*OtherVar "vynásobiť MyVar hodnotou OtherVar

divízie

Znamienko (/) sa používa na vykonanie operácie delenia, toto znamienko sa nazýva znamienko delenia reálnych čísel. Vo výrazoch delenia sa jeden operand delí druhým a výsledkom delenia je kvocient.

"Príklad aritmetických výrazov so znamienkom"/"10/4" deliť 10 krát 4 MyVar/2 "delete MyVar by 2 MyVar/OtherVar" delte MyVar by OtherVar

Ak sa ktorýkoľvek operand vo výraze delenia vyhodnotí ako Null, potom bude výsledok výrazu tiež Null. Typ údajov v reálnych výrazoch delenia je zvyčajne Double, ale existuje výnimka.

Ak sú oba operandy vo výraze delenia typu Integer alebo Single, potom je výsledkom výrazu delenia typ Single. Ak výsledok prekročí rozsah pre Single, potom ho VBA skonvertuje na Double.

Celočíselné delenie

Znamienko (\) sa používa na vykonanie operácie delenia celého čísla, pri ktorej je výsledkom delenia vždy celé číslo bez zlomkovej časti. VBA nezaokrúhľuje podiel celočíselného delenia, ale jednoducho ho skráti na celé číslo, pričom zlomkovú časť zahodí.

Typ údajov výsledku celočíselného výrazu delenia je buď Integer alebo Long. VBA používa najmenší typ údajov, ktorý zodpovedá výsledku výrazu.

"Príklad aritmetických výrazov so znamienkom "\" 10\4 "delte 10 4; vráti hodnotu 2 MyVar\2 "delenie MyVar by 2 MyVar\OtherVar "delenie MyVar by OtherVar

Rozdelenie modulov

Znak (Mod) sa používa na vykonanie operácie modulo. Pri delení modulo výraz vráti iba zvyšok delenia ako celé číslo.

"Príklad aritmetických výrazov so znamienkom "Mod" 8 Mod 2 "vracia hodnotu 0; 5.1 Mod 3 "vráti hodnotu 2; 6 Mod MyVar "ak MyVar obsahuje 3, vráti 0

To je pochopiteľné vysvetlenie matematická operácia daný na jednom z fór programátorov. Odtiaľ budem citovať: "predstavte si, že je tam plná 50 l kanister a 3 l kanister. A vy začnete naberať vodu z kanistra dózou (môžete nakresliť len plnú). ." Inými slovami, 50 Mod 3 vráti 2.

Typ údajov výsledku výrazu modulo je Integer alebo Long. VBA používa najmenší typ, ktorý zodpovedá výsledku výrazu.

Umocňovanie

Znamienko (^) sa používa na vykonanie operácie umocnenia čísla alebo výrazu. Exponent udáva, koľkokrát sa má číslo alebo výraz vynásobiť.

"Príklad aritmetického výrazu so znamienkom "^" 3 ^ 3" je rovnaký ako 3*3*3, vráti hodnotu 27


Operátor priradenia (=)

Operátor priradenia sa používa na priradenie výsledku výrazu k premennej.

Operátor priradenia má dve syntaktické formy:

1 Nech varname = výraz
2 varname = výraz


varname- ľubovoľná premenná VBA

výraz- akýkoľvek výraz VBA


Prvá verzia operátora priradenia sa používala v raných programovacích jazykoch Basic. Druhá možnosť sa používa v modernej verzii VBA.


Pri vykonávaní príkazu priradenia VBA najskôr vyhodnotí výraz napravo od príkazu priradenia a potom uloží výsledok výrazu do premennej, ktorej názov je naľavo od znamienka rovnosti.


X = 5 + 7; Y = X + 5; Z = X - Y; A=B; ja = ja + 1


Začínajúci používatelia niekedy nechápu význam poslednej operácie priradenia, keď ľavá aj pravá časť operácie obsahuje rovnakú premennú. V tomto prípade sa najprv výsledok vyhodnotenia výrazu na pravej strane priraďovacieho operátora umiestni do medzipamäťovej bunky a následne sa tento výsledok priradí k premennej na ľavej strane.

Napríklad, ak v príkaze priradenia A = A +5 obsahovala premenná A pred operáciou priradenia hodnotu 7, potom po operácii bude obsahovať hodnotu 12 (7+5).

Malo by sa pamätať:

  • Ľubovoľnú číselnú premennú (alebo výraz) môžete priradiť akejkoľvek inej premennej číselného typu (alebo premennej typu Variant);
  • Ak zadanej premennej priradíte číselný výraz s nižšou presnosťou (napríklad Double - Long), VBA zaokrúhli hodnotu výrazu tak, aby zodpovedala presnosti premennej, ktorá nadobudne novú hodnotu;
  • Keď je premennej String priradený variant obsahujúci číslo, VBA automaticky skonvertuje číslo na reťazec.

Operátor sčítania (+)

Operátor sčítania vykoná jednoduché sčítanie. Oba operandy musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na číslo. Operátor sčítania možno použiť aj na vykonávanie aritmetických operácií s údajmi dátumu.


Typ údajov výsledku sčítacieho výrazu je zvyčajne rovnaký ako najpresnejší typ v tomto výraze. Existujú však výnimky:

  • Výsledkom pridania typu Single a Long je Double;
  • Pridanie typu Dátum k akémukoľvek inému typu údajov vždy povedie k dátumu;
  • Ak výsledok prekročí rozsah typu Integer, VBA ho skonvertuje na Long;
  • Ak výsledok presahuje typy Long, Single, Date, VBA ho skonvertuje na Double;
  • Ak má ktorýkoľvek operand v sčítacom výraze hodnotu Null, potom je výsledok sčítacieho výrazu tiež Null.

Pripomeňte si poradie zvyšovania presnosti pre číselné typy údajov: Byte, Celé číslo, Dlhé, Jednoduché, Dvojité, Mena.

Malo by sa povedať, že je potrebné jasne pochopiť, ako VBA konvertuje typy údajov v dôsledku aritmetických operácií. V budúcnosti to pomôže vyhnúť sa mnohým „zbytočným“ chybám pri písaní kódu.

Operátor odčítania (-)

Operátor odčítania robí dve veci: používa sa na odčítanie jedného čísla od druhého; označuje jednočlenné znamienko mínus (toto je znamienko mínus, ktoré je umiestnené pred číslom, čím označuje, že ide o záporné číslo). Vloženie unárneho mínusu pred premennú alebo výraz je rovnaké ako vynásobenie tohto čísla číslom -1.


Oba operandy vo výraze odčítania musia byť číselné premenné (výrazy) alebo reťazcové výrazy, ktoré VBA dokáže previesť na číslo. Na prácu s dátumami môžete použiť operátor odčítania.

VBA používa rovnaké pravidlá na určenie typu údajov výsledku výrazu odčítania ako pre výrazy, ktoré používajú operátor sčítania. Je tu však dodatok:
Ak sú obidva operandy vo výraze typu Dátum, potom výsledok výrazu bude typu Double.

Operátor násobenia (*)

Operátor násobenia násobí dve čísla – výsledkom násobenia je súčin dvoch operandov. Oba operandy vo výraze násobenia musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na číslo.

VBA sa riadi rovnakými pravidlami na určenie typu údajov výsledku výrazu násobenia ako pre výrazy, ktoré používajú operátor sčítania. Vo výrazoch násobenia sa všetky premenné Variant, ktoré obsahujú hodnoty dátumu, skonvertujú na číselné hodnoty.

Operátor divízie (/)

Operátor delenia s pohyblivou rádovou čiarkou vykonáva obvyklé aritmetické delenie svojich operandov.

Vo výrazoch delenia sa prvý operand delí druhým operandom - výsledkom delenia je kvocient.

Oba operandy vo výraze delenia s pohyblivou rádovou čiarkou musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže skonvertovať na číslo.

Ak je aspoň jeden operand vo výraze delenia typu Null, potom výsledok delenia bude tiež Null.

Typ údajov operácie delenia s pohyblivou rádovou čiarkou je Double, okrem:

  • Oba operandy vo výraze delenia sú typu Integer alebo Single - výsledok Single;
  • Ak výsledok výrazu nepresahuje rozsah hodnôt pre typ Single.

Celočíselné delenie (\)

Delenie celým číslom sa líši od delenia s pohyblivou rádovou čiarkou tým, že jeho výsledkom je vždy celé číslo bez zlomkovej časti.

Oba operandy vo výraze celočíselného delenia musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže skonvertovať na číslo.

Pred vykonaním operácie delenia celého čísla VBA zaokrúhli každý operand na číslo typu Integer alebo Long (rovnaký typ ako výsledok celočíselného delenia).

VBA zahodí (ale nezaokrúhli!) akýkoľvek zlomkový zvyšok výsledku celočíselného delenia. Napríklad výrazy 22\5 a 24\5 budú mať rovnaký výsledok = 4.

Ak je aspoň jeden operand vo výraze celočíselného delenia typu Null, potom je výsledok delenia tiež Null.

Modulo Division (Mod)

Modulo delenie, ako to bolo, dopĺňa celočíselné delenie. Pri delení modulo výraz vráti iba zvyšok operácie delenia ako celé číslo.
22 Mod 5 = 2
24 Mod 5 = 4
25 Mod 5 = 0

Zvyšné vlastnosti delenia modulo sú totožné s celočíselným delením.

Umocnenie (^)

Operátor umocnenia zvýši číslo na mocninu.



Oba operátory vo výraze umocňovania musia byť číselné výrazy alebo reťazce, ktoré VBA dokáže previesť na čísla.

Operand naľavo od operátora umocňovania môže byť záporné číslo iba vtedy, ak je operand napravo celé číslo.

Výsledok výrazu je typu Double.

Ak je aspoň jeden operand vo výraze typu Null, potom výsledok umocnenia bude tiež Null.


Zhrňme si vyššie uvedené.