Una instrucció d'assignació és una instrucció VBA que assigna el resultat d'una expressió a una variable o un objecte. El sistema d'ajuda d'Excel defineix el terme expressió com
"... una combinació de paraules clau, operadors, variables i constants que produeix una cadena, nombre o objecte. Una expressió es pot utilitzar per realitzar un càlcul, manipular caràcters o provar dades.
Gran part del vostre treball a VBA implica desenvolupar (i depurar) expressions. Si sabeu com crear fórmules a Excel, no tindreu problemes per crear expressions. Amb una fórmula de full de treball, Excel mostra el resultat en una cel·la. D'altra banda, es pot assignar una expressió VBA a una variable.
Exemples de declaracions de tasca
En els exemples d'instruccions d'assignació que segueixen, les expressions es troben a la dreta del signe igual:
x = 1
x = x + 1
x = (y * 2) / (z * 2)
Cost de l'habitatge = 375.000
FileOpen = Veritable
Interval ("L'any"). Valor = 2016
Les expressions poden ser tan complexes com cal que siguin; utilitzeu el caràcter de continuació de línia (un espai seguit d'un guió baix) per facilitar la lectura d'expressions llargues.
Sovint, les expressions utilitzen funcions: funcions integrades de VBA, funcions del full de treball d'Excel o funcions que desenvolupeu amb VBA.
Sobre aquest signe igual
Com podeu veure a l'exemple anterior, VBA utilitza el signe igual com a operador d'assignació. Probablement esteu acostumats a utilitzar un signe igual com a símbol matemàtic d'igualtat. Per tant, una declaració d'assignació com la següent pot fer que aixequeu les celles:
z = z + 1
En quin univers boig és z igual a si mateix més 1? Resposta: No es coneix cap univers. En aquest cas, la instrucció d'assignació (quan s'executa) augmenta el valor de z en 1. Per tant, si z és 12, l'execució de la instrucció fa que z sigui igual a 13. Només recordeu que una assignació utilitza el signe igual com a operador, no com a símbol. d'igualtat.
Operadors suaus
Els operadors tenen un paper important a VBA. A més de l'operador de signe igual, VBA ofereix diversos operadors. Us haurien de ser familiars perquè són els mateixos operadors que s'utilitzen a les fórmules del full de treball (excepte l'operador Mod).
Funció |
Símbol de l'operador |
Addició |
+ |
Multiplicació |
* |
Divisió |
/ |
Resta |
– |
Exponenciació |
^ |
Concatenació de cadenes |
& |
Divisió entera (el resultat sempre és un nombre enter) |
|
Mòdul aritmètic (retorna la resta d'una
operació de divisió ) |
Mod |
Quan escriviu una fórmula d'Excel, feu aritmètica mòdul utilitzant la funció MOD. Per exemple, la fórmula següent retorna 2 (la resta quan es divideix 12 per 5):
=MOD(12,5)
A VBA, l'operador Mod s'utilitza així (i z té un valor de 2):
z = 12 Mod 5
El terme concatenació és que el programador parla per "unir-se". Per tant, si concateneu cadenes, esteu combinant cadenes per fer una cadena nova i millorada.
VBA també proporciona un conjunt complet d'operadors lògics. D'aquests, No, I i O s'utilitzen amb més freqüència.
Operador |
Què fa |
No |
Realitza una negació lògica sobre una expressió |
I |
Realitza una conjunció lògica sobre dues expressions |
O |
Realitza una disjunció lògica sobre dues expressions |
Xor |
Realitza una exclusió lògica de dues expressions |
Eqv |
Realitza una equivalència lògica en dues expressions |
Imp |
Realitza una implicació lògica en dues expressions |
L'ordre de precedència dels operadors a VBA és exactament el mateix que a les fórmules d'Excel. L'exponenciació té la prioritat més alta. La multiplicació i la divisió segueixen, seguits de la suma i la resta. Podeu utilitzar els parèntesis per canviar l'ordre de precedència natural, fent que el que hi hagi entre parèntesis estigui abans de qualsevol operador. Fes una ullada a aquest codi:
x = 3
y = 2
z = x + 5 * y
Quan s'executa el codi anterior, quin és el valor de z? Si heu respost 13, obteniu una estrella daurada que demostra que enteneu el concepte de precedència de l'operador. Si has respost 16, llegeix això: Primer es realitza l'operació de multiplicació (5 * y) i aquest resultat s'afegeix a x.
Molts programadors solen utilitzar parèntesis fins i tot quan no són necessaris. Per exemple, a la vida real, l'última declaració de la tasca es podria escriure així:
z = x + (5 * y)
No tingueu vergonya d'utilitzar parèntesis encara que no siguin necessaris, sobretot si fer-ho fa que el vostre codi sigui més fàcil d'entendre. A VBA no li importa si utilitzeu parèntesis addicionals.