Znaki in ključne besede, ki jih uporabljamo za upravljanje spremenljivk v VBA, se imenujejo operaterji VBA. Na primer, v spodnjih vrsticah so =, +,>, & operaterji.
sub Examp () a = 12 b = 10 c = a+b debug.print "Vsota a in b je" & c end sub
V vsakem programskem jeziku obstaja pet vrst operaterjev, torej v VBA
1. Operater dodelitve
2. Aritmetični operater
3. Primerjalni operater
4. Logični operater
5. Operater združevanja
Oglejmo si vsako vrsto operaterja v Excelu VBA.
1. Operater dodelitve (=)
To je prvi operater, ki ga boste uporabili v katerem koli programskem jeziku. V VBA se uporablja za dodeljevanje vrednosti spremenljivkam. To je "=" (enako).
Ta operater uporabljamo za dodelitev vrednosti spremenljivkam v Excelu VBA. Uporablja se tudi kot primerjalni operater v VBA. O tem bomo govorili kasneje v tej vadnici.
Eden preprostih primerov je
sub test () a = 10 Range ("A1"). value = a end sub
V zgornjem primeru najprej uporabimo operator dodelitve "=" za dodelitev vrednosti spremenljivki "a", nato pa operater "=" dodelimo vrednost "a" vrednosti obsega ("A1").
2. Aritmetični operaterji
Aritmetični operaterji so isti operaterji, ki jih že od otroštva uporabljamo za preproste izračune. V Excelu VBA se ti operaterji uporabljajo za izračune spremenljivk in števil. So:
(+) Aritmetični dodatek:Ta operator se uporablja za dodajanje dveh ali več števil ali vrednosti dveh ali več spremenljivk. Spodnje vrstice povzamejo vrednosti dveh spremenljivk in jih natisnejo v celico "A1".
Pod Test () a = 10 b = 12 Obseg ("A1"). Vrednost =a+b End Sub
A1 bo imel 22. Ta operater deluje tudi kot operater združevanja. Če imata oba, a in b vrednosti niza, bo operator + deloval kot operater združevanja. V nadaljevanju članka bomo videli, kako.
(-) Aritmetično odštevanje:Ta operator se uporablja za odštevanje ene vrednosti od druge vrednosti spremenljivk. Spodnja vrstica odšteje vrednost a od b in jo natisne v celico "A1".
Pod Test () a = 10 b = 12 Obseg ("A1"). Vrednost =b-a End Sub
A1 na listu bo imel 2.
(*) Aritmetično množenje:Ta operator se uporablja za množenje ali pridobivanje produkta dveh ali več števil ali vrednosti dveh ali več spremenljivk. Spodnje vrstice pomnožijo vrednosti dveh spremenljivk in jih natisnejo v celico "A1".
Pod Test () a = 10 b = 12 Obseg ("A1"). Vrednost =a*b End Sub
Celica A1 bo imela vrednost 120.
(/) Aritmetični oddelek:Ta operator uporablja ločevanje ene vrednosti od druge. Spodnja vrstica deli vrednost b s spremenljivko a in jo natisne v celico "A1".
Pod Test () a = 10 b = 12 Obseg ("A1"). Vrednost =b/a End Sub
Celica A1 bo imela vrednost 1,2.
(Mod) Operater aritmetičnega ostanka v VBA: Medtem ko večina PL uporablja % (modul) za pridobivanje ostanka, v VBA uporabljamo ključno besedo Mod. Ta operater se uporablja za pridobivanje opomnika po delitvi ene vrednosti od druge. Spodnja vrstica deli vrednost b s spremenljivko a in natisne vrednost opomnika v celici A1.
Pod Test () a = 10 b = 4 Območje ("A1"). Vrednost =a Mod b End Sub
Celica A1 bo imela vrednost 2.
(^) Aritmetična eksponentnost:Ta operator se uporablja za prikaz eksponenta ene vrednosti v drugo. Spodnje vrstice nam dajo vrednost 3 za eksponent 4.
Pod Test () a = 3 b = 4 Razpon ("A1"). Vrednost =a^b End Sub
Celica A1 bo imela vrednost 81 (3x3x3x3).
Ti operaterji v VBA upoštevajo pravilo BODMAS. V VBA je samo 6 aritmetičnih operatorjev. Nekateri operaterji delujejo kot dve vrsti operaterjev, na primer +. Skozi to vadnico boste izvedeli o njih.
3. Primerjalni operaterji
Ko želimo primerjati dve vrednosti v VBA, uporabimo operaterje za primerjavo. Rezultat primerjalnega operaterja je vedno Boolean. Če je trditev res, potem rezultat v TRUE. Če je trditev napačna, je vrednost False. Ti operaterji se pogosto uporabljajo pri odločanju v VBA. Poglejmo, kaj so:
(=) Enako:Da, znak = (enako je) se uporablja tudi kot primerjalni operater v VBA. Ko želimo preveriti, ali sta spremenljivki enaki ali ne, uporabimo ta primerjalni operater.
Pod Test () a = 3 b = 4 Če je a = b, potem 'Vrne napačno MsgBox "A in b sta enaka." 'to ne bo izvedeno. Sicer MsgBox "A in b nista enaka" End IF End Sub
V zgornjem primeru uporabimo stavek If in preverimo, ali sta vrednosti a in b enaki. Očitno niso. Tako se natisne izjava Else.
To lahko preverite tako, da preprosto uporabite stavek.
a = 3 b = 4 debug.print a = b
To bo v neposrednem oknu natisnilo False.
(<) Manj kot:To se uporablja za preverjanje, ali je leva vrednost manjša od desne ali ne.
Pod Test () a = 3 b = 4 Če je a
V zgornjem primeru preverimo, ali je vrednost a manjša od b. Ker je to res, se stavek if izvede in Else ne.
To lahko preverite tako, da preprosto uporabite stavek.
a = 3 b = 4 debug.print a<>
To bo v neposrednem oknu natisnilo True.
(<=) Manj kot ali enako:To se uporablja za preverjanje, ali je leva vrednost manjša ali enaka desni vrednosti ali ne.
Pod Test () a = 4 b = 4 Če je a <= b potem 'Vrne True MsgBox "A je manjše ali enako b." 'bo to izvedeno. Sicer MsgBox "A ni enako ali manjše od b." 'to ne bo izvedeno. End IF End Sub
V zgornjem primeru preverimo, ali je vrednost a manjša od b. Ker je to res, se stavek If izvede in Else ne.
To lahko preverite tako, da preprosto uporabite stavek.
a = 4 b = 4 iskanje napak a <-b
To bo v neposrednem oknu natisnilo True.
(>) Več kot:To se uporablja za preverjanje, ali je leva vrednost večja od desne ali ne.
Sub Test () a = 3 b = 4 Če je a> b, potem bo 'Vrnilo napačno polje MsgBox' 'a je večje od b.' ' 'To ne bo izvedeno. Sicer MsgBox "A ni večji od b." 'To bo izvedeno. End IF End Sub
V zgornjem primeru preverimo, ali je vrednost a večja od b. Ker je to napačno, se stavek if ne izvede in Else to stori.
To lahko preverite tako, da preprosto uporabite stavek.
a = 3 b = 4 debug.print a> b
To bo v neposrednem oknu natisnilo False.
(> =) Več kot:To se uporablja za preverjanje, ali je leva vrednost večja ali enaka desni vrednosti ali ne.
Pod Test () a = 3 b = 4 Če je a> = b, potem 'Vrne napačno MsgBox "A je večje ali enako b." 'To ne bo izvedeno. Sicer MsgBox "A ni večji ali enak b." 'To bo izvedeno. Konec IF
V zgornjem primeru preverimo, ali je vrednost a večja ali enaka b. Ker je to napačno, se stavek if ne izvede in Else to stori.
To lahko preverite tako, da preprosto uporabite stavek.
a = 3 b = 4 debug.print a> = b
To bo v neposrednem oknu natisnilo False.
() Ni enako:To se uporablja za preverjanje, če leva vrednost ni enaka desni vrednosti.
Sub Test () a = 3 b = 4 Če ab potem 'Vrne True MsgBox "A ni enako b,"' To bo izvedeno. Sicer MsgBox "A in b sta enaka." 'To ne bo izvedeno. End IF End Sub
V zgornjem primeru preverimo, ali je vrednost a ni enako b. Ker je to res, se stavek If izvrši, Else pa ne.
To lahko preverite tako, da preprosto uporabite stavek.
a = 3 b = 4 debug.print ab
To bo v neposrednem oknu natisnilo True.
Zgoraj navedenih šest operaterjev se imenuje primerjalni operater, saj jih uporabljamo za primerjavo dveh vrednosti ali spremenljivk. V VBA jih boste veliko uporabljali za odločanje v VBA.
4. Logični operaterji
Logični operaterji se uporabljajo za izvajanje logičnih operacij na eni ali več spremenljivkah. Rezultat takšnih operacij je vedno TRUE ali FALSE. Logični operaterji se pogosto (ne vedno) uporabljajo za preverjanje več kot enega pogoja.
Spodaj so logični operaterji, ki jih uporabljamo v VBA:
Operater VBA IN (in ali *): Operater VBA AND se uporablja za zagotovitev, da so pogoji na levi in desni strani res. Če je kateri od pogojev napačen, bo celotna trditev povzročila napačno. Za operacije AND uporabljamo ključno besedo And ali znak * (zvezdica).
Preverite spodnjo izjavo:
Pod test () a = 10 b = 20 Če je a <15 In b <15, potem MsgBox "a in b sta manj kot 15." 'To se ne izvede. Sicer MsgBox "Ali a ali b je večje ali enako 15." 'To se izvrši. End If End Sub
Ko zaženemo zgornji delček, se drugi stavek if ne izvede. Ker je prva trditev na levi resnična, na desni pa napačna. Zato celotna izjava vrne napačno.
V večini jezikov se simbol & uporablja kot operator AND, vendar ne v VBA. V VBA lahko uporabite operator množenja * (zvezdica) kot operator AND, da zagotovite, da sta oba pogoja resnična.
V zgornjem primeru lahko uporabite spodnji stavek if za isto dejanje.
Če (a <15) * (b <15) Potem
Za ločevanje pogojnih stavkov morate uporabiti oklepaje. V nasprotnem primeru bodo izjave sledile pravilu BODMAS in rezultat bo netočen.
V1: Kakšen bo rezultat spodnje izjave? Sporočite mi v spodnjem oddelku za komentarje:
debug.print a10 IN a = (b/2) IN a<>
Ko je vrednost a 15 in b je 30. Zapišite v spodnji odsek komentarjev.
Operater VBA ALI (ali ali +): Operator OR se uporablja, če želimo zagotoviti, da je levi pogoj TRUE ali desni pogoj TRUE. Če je kateri od obeh pogojev resničen, bo rezultat resničen. Med dvema logičnimi stavki uporabljamo ključno besedo OR. Za operacijo OR lahko uporabite tudi znak + (plus). Prepričajte se, da ste pravilno uporabili oklepaje, da bodo izjave jasne med uporabo znaka +.
Preglejte spodnjo kodo:
Pod test () a = 10 b = 20 Če je a <15 ali b <15, potem MsgBox "Ali a ali b je manjši od 15." 'To se izvrši. Sicer MsgBox "Niti a niti b ni manjši od 15." 'To se ne izvede. End If End Sub
Ko izvedemo zgornjo kodo, se prikaže prvo sporočilo, drugo pa preskočimo. Ker je a manjši od 15 in b ni. Za operacijo OR je potreben le en pogoj, da je vrednost resnična.
Izjavo napišete tako:
Če je (a <15) + (b <15), potem
V2: Kakšen bo rezultat spodnje izjave? Sporočite mi v spodnjem oddelku za komentarje:
debug.print a10 Ali a = (b/2) ali a<>
Ko je vrednost a 10 in b je 5. Zapišite v spodnji odsek komentarjev.
Operater VBA NOT (ne): Operater Not se uporablja za obračanje logične vrednosti. Z drugimi besedami, stavek z operatorjem Not vrne True le, če je stavek pred tem False. Če na primer ključno besedo Not uporabite pred stavkom True, bo to povzročilo napačno in obratno. V VBA uporabljamo Ne ključno besedo, da preverite, ali kaj ni res ali ne (?).
Pod test () a = 10 b = 10 Če ni a = b, potem MsgBox "a in b nista enaka." Sicer sta MsgBox "a in b oba enaka." 'To se izvede End If End Sub
V zgornji kodi stavekNe a = bvrne napačno. Sprva je a = b res, toda kot smo uporabili Ne pred tem, je rezultat obrnjen in stavek se spremeni v Neresnično. V zgornjem primeru smo pred tem uporabili edine trditve. Pred operaterjem Not lahko imate toliko izjav, kot jih želite. Samo jih pritrdite v oklepaj.
V3: Kakšen bo rezultat spodnje izjave? Sporočite mi v spodnjem oddelku za komentarje:
debug.print a10 Ali ne (a = (b/2) * a<>
Ko je vrednost a 10 in b je 5. Zapišite v spodnji odsek komentarjev.
5. Operaterji združevanja (& ali +)
Ti operaterji se uporabljajo za združevanje nizov. Simbol & se uporablja za združevanje besedil. Priporočljiv je operater za združevanje nizov. Za združevanje pa lahko uporabite tudi znak +.
Znak plus združuje dve spremenljivki, kadar sta obe nizi. Če kateri koli niz ni niz, bo znak + deloval kot operator dodajanja.
Oglejte si spodnjo kodo:
Pod test () a = "Exceltip" b = "je številka" c = 1 d = 2 Debug.print a & b & c 'to natisne "Exceltip je številka 1" Debug.print a + b & c & d' to bo natisnilo "Exceltip je številka 12 'Debug.print a + b + c' to bo napaka. End Sub
V zgornji kodi bosta prvi dve vrstici delovali popolnoma v redu. V tretji vrstici bo prišlo do napake, ker poskušamo dodati besedilo s številkami. Za združevanje števil vedno uporabljamo & (amp).
Večnamenski operaterji v VBA
Skozi zgornje primere ste se morali naučiti, da obstaja veliko operaterjev, ki v različnih situacijah delujejo drugače.
Znak + deluje kot operator seštevanja pri delu s številkami. Med delom z logičnimi vrednostmi znak plus deluje kot operater Or v VBA. Če se uporablja z niznimi vrednostmi, operator plus deluje kot operater združevanja. Spodnje vrstice so veljavne:
Debug.Print 10 + 20 'natisne 30. + deluje kot operator dodajanja. Debug.Print (1020) 'natisne True. + deluje kot operater Or. Debug.Print "10" + "20" 'Natisne 1020. Znak + deluje kot operater združevanja.
Zvezdica (*) deluje kot operator množenja, če so operandi številčni. Ko so operandi logični, zvezdica deluje kot operater And.
Spodnje vrstice kode delujejo popolnoma v redu.
Debug.Print 10 * 20 'natisne 200. * deluje kot operator množenja. Debug.Print (1020) 'natisne napačno. Znak + deluje kot operater And.
Tako da fantje, vse to velja za operaterje v VBA. Upam, da je bilo v pomoč. Če imate kakršne koli dvome glede operaterjev v VBA, vprašajte v spodnjem razdelku za komentarje.
Stavek If ElseIf v VBA | V stavku If ElseIf se naslednji pogoj preveri le, ko prejšnji pogoj pade. Ko se pogoj ujema, se koda v tem bloku izvede in nadzor zapusti blok If.
Spremenljivi obseg Excela VBA | VBA ima tudi specifikatorje obsega. S temi specifikatorji obsega lahko nastavite vidnost/obseg spremenljivke v Excelu VBA.
VBA Izjava o primeru | Izjave o izbranih primerih so uporabne, če imate preveč pogojev za preverjanje. So odlična zamenjava več stavkov If ElseIf.
Uporaba zanke v VBA v programu Microsoft Excel | Zanke v VBA nam omogočajo, da vedno znova ponavljamo podobno nalogo brez ponavljanja kode. V Excelu VBA obstajajo tri vrste zank.
Argumenti ByRef in ByVal | Ko se argument kot argument ByRef posreduje drugi pod -funkciji ali funkciji, se pošlje sklic na dejansko spremenljivko. Vse spremembe v kopiji spremenljivke se bodo odražale v izvirnem argumentu.
Prikaz sporočila v vrstici stanja Excel VBA Statusno vrstico v Excelu lahko uporabite kot monitor kode. Ko je vaša koda VBA dolga in z VBA opravite več nalog, pogosto onemogočite posodobitev zaslona, tako da zaslon ne utripa
Izklopite opozorilna sporočila z uporabo VBA v programu Microsoft Excel 2016 | Ta koda ne samo onemogoči opozoril VBA, ampak tudi poveča časovno učinkovitost kode. Poglejmo, kako.
Priljubljeni članki:
50 bližnjic v Excelu za povečanje produktivnosti | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.
Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.
COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določene vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.
Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.