Perleidimas patvirtinimas yra VBA patvirtinimas, kad priskiria Ekspresijos į kintamąjį arba objekto rezultatą. „Excel“ žinyno sistema apibrėžia terminą išraiška kaip
„... raktinių žodžių, operatorių, kintamųjų ir konstantų derinys, duodantis eilutę, skaičių arba objektą. Išraiška gali būti naudojama atliekant skaičiavimus, manipuliuojant simboliais arba tikrinant duomenis.
Didžioji jūsų darbo VBA dalis apima išraiškų kūrimą (ir derinimą). Jei žinote, kaip kurti formules programoje „Excel“, neturėsite problemų kurdami išraiškas. Naudodama darbalapio formulę, „Excel“ rodo rezultatą langelyje. Kita vertus, VBA išraiška gali būti priskirta kintamajam.
Priskyrimo pareiškimo pavyzdžiai
Toliau pateiktuose priskyrimo teiginių pavyzdžiuose išraiškos yra lygybės ženklo dešinėje:
x = 1
x = x + 1
x = (y * 2) / (z * 2)
Namo kaina = 375 000
FileOpen = Tiesa
Diapazonas („Metai“). Vertė = 2016 m
Išraiškos gali būti tokios sudėtingos, kokios jums reikia; naudokite eilutės tęsimo simbolį (tarpą po brūkšnio), kad būtų lengviau skaityti ilgus posakius.
Dažnai išraiškose naudojamos funkcijos: VBA įtaisytosios funkcijos, Excel darbalapio funkcijos arba funkcijos, kurias kuriate naudodami VBA.
Apie tą lygybės ženklą
Kaip matote ankstesniame pavyzdyje, VBA kaip priskyrimo operatorių naudoja lygybės ženklą. Tikriausiai esate įpratę naudoti lygybės ženklą kaip matematinį lygybės simbolį. Todėl toks priskyrimo teiginys, kaip šis, gali priversti jus pakelti antakius:
z = z + 1
Kurioje beprotiškoje visatoje z lygus sau pačiam plius 1? Atsakymas: Nėra žinomos visatos. Šiuo atveju priskyrimo sakinys (vykdant) padidina z reikšmę 1. Taigi, jei z yra 12, vykdant sakinį z yra lygus 13. Tiesiog atminkite, kad priskyrime lygybės ženklas naudojamas kaip operatorius, o ne simbolis. lygybės.
Sklandūs operatoriai
VBA operatoriai atlieka pagrindinius vaidmenis. Be lygybės ženklų operatoriaus, VBA pateikia keletą operatorių. Jie turėtų būti jums žinomi, nes tai yra tie patys operatoriai, naudojami darbalapio formulėse (išskyrus operatorių Mod).
Funkcija |
Operatoriaus simbolis |
Papildymas |
+ |
Daugyba |
* |
Padalinys |
/ |
Atimtis |
– |
Eksponentiškumas |
^ |
Eilučių sujungimas |
& |
Sveikųjų skaičių padalijimas (rezultatas visada yra sveikas skaičius) |
|
Modulo aritmetika (pateikia likusią dalybos
operacijos dalį) |
Mod |
Kai rašote „Excel“ formulę, atliekate modulinę aritmetiką naudodami funkciją MOD. Pavyzdžiui, ši formulė grąžina 2 (likutį padalijus 12 iš 5):
=MOD(12,5)
VBA operatorius Mod naudojamas taip (o z reikšmė yra 2):
z = 12 5 mod
Terminas sujungimas reiškia, kad programuotojas kalba už „sujungti“. Taigi, jei sujungiate eilutes, sujungiate eilutes, kad sukurtumėte naują ir patobulintą eilutę.
VBA taip pat teikia visą loginių operatorių rinkinį. Iš jų dažniausiai naudojami Ne, Ir ir Ar.
operatorius |
Ką tai daro |
Ne |
Atlieka loginį išraiškos neigimą |
Ir |
Atlieka loginį dviejų posakių jungtį |
Arba |
Atlieka dviejų išraiškų loginį disjunkciją |
Xor |
Atlieka dviejų išraiškų loginį išskyrimą |
Ekv |
Atlieka dviejų išraiškų loginį ekvivalentiškumą |
Imp |
Atlieka dviejų išraiškų loginę implikaciją |
VBA operatorių pirmumo tvarka yra lygiai tokia pati kaip ir Excel formulėse. Eksponentiškumas turi didžiausią pirmenybę. Toliau seka daugyba ir dalyba, o po to seka sudėjimas ir atėmimas. Galite naudoti skliaustus, kad pakeistumėte natūralią pirmumo tvarką, kad skliausteliuose įrašyta informacija būtų prieš bet kurį operatorių. Pažvelkite į šį kodą:
x = 3
y = 2
z = x + 5 * y
Kai vykdomas ankstesnis kodas, kokia yra z reikšmė? Jei atsakėte 13, gausite auksinę žvaigždutę, kuri įrodo, kad suprantate operatoriaus pirmumo sąvoką. Jei atsakėte 16, skaitykite taip: Pirmiausia atliekama daugybos operacija (5 * y), o rezultatas pridedamas prie x.
Daugelis programuotojų linkę naudoti skliaustus net tada, kai jų nereikia. Pavyzdžiui, realiame gyvenime paskutinis užduoties teiginys gali būti parašytas taip:
z = x + (5 * y)
Nesidrovėkite naudoti skliaustų, net jei jie nėra būtini – ypač jei tai padarę kodą lengviau suprasti. VBA nerūpi, jei naudosite papildomus skliaustus.