Professional Documents
Culture Documents
Deoarece VBA este un limbaj de programare real, foloseste multe elemente Comun tuturor limbilor
de programare. În acest capitol vă prezint La câteva din aceste elemente: comentarii, variabile,
constante, tipuri de date, Array-uri, și câteva alte bunătăți. Dacă ați programat alte limbi, Unele
dintre aceste materiale vor fi familiare. Dacă ești un programator nou, e Timp pentru a vă rostogoli
mânecile și a vă ocupa.
Utilizați comentariile liber și extensiv pentru a descrie ceea ce face codul (Ceea ce nu este
întotdeauna evident prin citirea codului însuși). Adesea, codul face Sensul perfect astăzi te
mintorează mâine. Am fost acolo. Asta a fost. Începeți un comentariu cu un apostrof ('). VBA ignoră
orice text care urmează Un apostrof într-o linie de cod. Puteți utiliza o linie completă pentru
comentariul dvs. Sau introduceți comentariul dvs. la sfârșitul unei linii de cod. Următorul exemplu
Arată o procedură VBA cu patru comentarii:
Regula "apostrof indică un comentariu" are o singură excepție: VBA nu Interpretați un apostrof în
interiorul unui set de ghilimele ca un indicator de comentariu. De exemplu, următoarea declarație
nu conține un comentariu, desi Are un apostrof:
Când scrieți un cod, este posibil să încercați o procedură prin excluderea unui cod Declarație
particulară sau grup de declarații. Puteți șterge declarațiile Apoi reintroduceți-le mai târziu. Dar asta
eo pierdere de timp. O soluție mai bună este Pur și simplu transforma aceste declarații în comentarii
prin introducerea apostrofelor. VBA Ignoră declarațiile care încep cu apostrofuri atunci când execută
o rutină. La Reactivați acele declarații "comentate", doar eliminați apostrofele.
✓Identificați-vă ca autor. Acest lucru poate fi util atunci când sunteți promovat și persoana care
preia locul de muncă are câteva întrebări.
✓Descrieți succint scopul fiecărei proceduri Sub sau Funcție pe care o scrieți.
✓Utilizați comentariile pentru a urmări modificările aduse unei proceduri.
✓Utilizați un comentariu pentru a indica faptul că utilizați o funcție sau o construcție într-un mod
neobișnuit sau nestandard.
✓Utilizați comentariile pentru a descrie variabilele pe care le utilizați, mai ales dacă nu utilizați
nume de variabile semnificative.
✓Utilizați un comentariu pentru a descrie eventualele soluții pe care le dezvoltați pentru a depăși
erorile din Excel.
✓Scrieți comentarii în timp ce dezvoltați cod, în loc să salvați sarcina pentru un pas final.
✓În funcție de mediul de lucru, vă recomandăm să adăugați o glumă sau două ca un comentariu.
Persoana care îți preia jobul atunci când te promovezi poate aprecia umorul.
Înțelegerea variabilelor
O variabilă este pur și simplu o locație de stocare numită în memoria computerului Care este folosit
de un program. Aveți o mulțime de flexibilitate în denumirea variabilelor, Astfel încât numele
variabilelor să fie cât se poate de descriptive. Atribuiți o valoare La o variabilă utilizând operatorul de
semne egale. (Mai multe despre acest lucru mai târziu în "Utilizarea instrucțiunilor de atribuire".)
Numele variabilelor din aceste exemple apar atât pe partea stângă, cât și pe cea dreaptă A semnelor
egale. Rețineți că ultimul exemplu utilizează două variabile.
Respingeți deci nevoia de a utiliza o variabilă denumită Workbook sau Range și folosiți ceva
Cum ar fi MyWorkbook sau MyRange.
Dacă nu declarați tipul de date pentru o variabilă pe care o utilizați într-o rutină VBA, VBA
Utilizează tipul de date implicit: Varianta. Datele stocate ca o variantă acționează ca un chameleon;
Se schimbă tipul în funcție de ceea ce faci cu el. De exemplu, dacă o variabilă Este un tip de date
Variant și conține un șir de text care arată ca un număr (Cum ar fi "143"), puteți utiliza această
variabilă pentru manipularea șirului, precum și Calcule numerice. VBA gestionează automat
conversia. Închirierea VBA Manipulați tipurile de date poate părea o cale ușoară de ieșire - dar
amintiți-vă că voi Sacrifică viteza și memoria.
Înainte de a utiliza variabilele într-o procedură, este o practică excelentă de a declara Variabilele dvs.
- adică, spuneți tipului de date VBA fiecărei variabile. Declarându-ți numele Variabilele fac ca
macroul să funcționeze mai rapid și să utilizeze mai eficient memoria.
Tipul de date implicit, Varianta, determină VBA să efectueze în mod repetat consumatoare de timp
Verifică și rezervă mai multă memorie decât este necesar. Dacă VBA cunoaște o variabilă Tipul de
date, nu trebuie să investigheze și să rezerve suficientă memorie Pentru a stoca datele.
Pentru a vă obliga să declarați toate variabilele pe care le utilizați, includeți aceste două Cuvinte ca
prima declarație în modulul dvs. VBA:
Când această afirmație este prezentă, nu veți putea rula codul dvs. dacă conține Orice variabile
nedeclarate.
Trebuie să utilizați opțiunea Explicit o singură dată: la începutul modulului dvs., Înainte de declararea
oricăror proceduri din modul. Ține minte că Opțiunea Explicit opțiune se aplică numai modulului în
care se află. Dacă Aveți mai mult de un modul VBA într-un proiect, aveți nevoie de o opțiune
explicită Pentru fiecare modul.
Numele variabilei este greșit scrise (lipsesc un r) și poate fi foarte dificil La fața locului. Dacă nu
observați acest lucru, Excel îl va interpreta ca o altă variabilă, Și probabil vă va determina rutina să
dea rezultate incorecte. Dacă utilizați Opțiunea Explicit la începutul modulului dvs. (forțându-vă să
declarați Variabila CurrentRate), Excel generează o eroare dacă întâlnește o greșeală
Variație a acelei variabile.
Pentru a vă asigura că instrucțiunea Explicit opțiune este inserată automat ori de câte ori
Introduceți un nou modul VBA, activați Definiția cerințelor variabile opțiune. O găsiți în fila Editor din
caseta de dialog Opțiuni (în VBE, Alegeți InstrumenteentoOpțiuni). Vă recomand să faceți acest
lucru.
Declarația variabilelor vă permite de asemenea să profitați de o scurtătură care poate Salvați o
tastare. Doar introduceți primele două sau trei caractere ale variabilei Apoi apăsați Ctrl + Space. VBE
va completa fie intrarea pentru Sau - dacă alegerea este ambiguă - vă arăta o listă de cuvinte
potrivite Selectați din. De fapt, acest truc slick funcționează cu cuvinte și funcții rezervate,
de asemenea. Figura 7-1 prezintă un exemplu despre modul în care funcționează acest lucru.
Figura 7-1: Presare Ctrl + Space Afișează a Listă de variabile nume, rezervat Cuvinte, și funcții.
Acum știți avantajele declarării variabilelor, dar cum faceți acest lucru?
Cea mai obișnuită metodă este să utilizați o instrucțiune Dim. Iată câteva exemple de Variabilele
fiind declarate:
Primele patru variabile sunt declarate ca un tip specific de date. Ultima variabilă, X, nu este declarat
ca un tip specific de date, deci este tratat ca un varianta (poate fi orice).
Pe lângă Dim, VBA are alte trei cuvinte cheie care sunt folosite pentru a declara variabile:
✓ Static
✓ Public
✓ Private
Vă explic mai multe despre cuvintele Dim, Static, Public și privat mai târziu, Dar mai întâi trebuie să
acoperim alte două subiecte relevante aici: o variabilă Domeniul de aplicare și viața unei variabile.
Amintiți-vă că un registru de lucru poate avea orice număr de module VBA. Și un VBA Modulul poate
avea orice număr de proceduri sub și funcționale. O variabilă Domeniul determină care module și
proceduri pot utiliza variabila.
Tabelul 7-2 are detaliile.
Confuz? Continuați să întoarceți paginile și veți vedea câteva exemple Faceti chestiile astea clare.
Declarații umoritoare
Subiecte cum ar fi variabilele, tipurile de date, declarațiile, Și domeniul de aplicare poate fi destul de
plictisitor, așa că am venit Cu câteva declarații semi-umorice Pentru amuzamentul tau. Toate acestea
sunt valide declarații:
Dim King As String, Kong
As Long
Dim Mouthful as Byte
Dim Julian As Boolean
Dim Unmarried As Single
Dim Dewey As Decimal
Dim Trouble As Double
Dim WindingRoad As Long
Dim Blind As Date
Public Nuisance
Private FirstClass
Static Cling, Electricity
Dim BaseballCards As New
Collection
Dim DentalFloss As String
Probabil că puteți veni cu altele.
Cea mai obișnuită modalitate de a declara o variabilă numai de procedură este cu un Dim afirmație.
Dim nu se referă la capacitatea mentală a designerilor VBA.
Mai degrabă, este un termen vechi de programare care este scurt pentru dimensiune, care pur și
simplu Înseamnă că anulați memoria pentru o anumită variabilă. Tu de obicei
Plasați declarațiile Dim imediat după instruciunea Sub sau Funcție și Înainte de codul procedurii.
Următorul exemplu prezintă unele variabile declarate numai de procedură declarate de Folosind
instrucțiunile Dim:
Observați că ultima instrucțiune Dim din exemplul precedent nu declară Un tip de date pentru
variabila MyValue; Ea declară numai variabila în sine. Efectul este că variabila MyValue este un
varianta.
Apropo, puteți declara mai multe variabile cu o singură instrucțiune Dim, Ca în următorul exemplu:
Spre deosebire de unele limbi, VBA nu vă permite să declarați un grup de variabile A fi un anumit tip
de date prin separarea variabilelor cu virgule. Pentru De exemplu, deși valabil, următoarea declarație
nu declară toate variabilele Ca intregi:
În acest exemplu, numai k este declarat a fi un întreg; Celelalte variabile Implicit la tipul de date
Variant.
Dacă declarați o variabilă cu domeniul de aplicare doar pentru procedură, alte proceduri în Același
modul poate folosi același nume de variabilă, dar fiecare instanță a lui Variabila este unică pentru
propria sa procedură. În general, variabilele declarate la Nivel de procedură sunt cele mai eficiente
deoarece VBA eliberează memoria Atunci când procedura se încheie.
Numai Module-variabile (Module-only variables)
Uneori doriți ca o variabilă să fie disponibilă pentru toate procedurile dintr-un modul.
Dacă este așa, declarați doar variabila (folosind Dim sau privat) înainte de primul modul Sub sau
funcția - în afara oricărei proceduri. Acest lucru se face în Declarații, la începutul modulului. (Acesta
este și locul unde Opțiunea Explicit este localizată.)
Figura 7-2 arată cum știți când lucrați cu Declarațiile secțiune. Utilizați lista verticală din partea
dreaptă și mergeți direct la Declarații secțiune. Nu treceți Go și nu colectați 200 de dolari.
Figura 7-2: Fiecare VBA Modulul are a declaraţii Secțiune, care apare Înainte de orice Sub sau
Funcţie procedure
Cu această declarație în loc - și în locul potrivit - valoarea curentă Variabila poate fi utilizată din orice
altă procedură din cadrul modulului, și aceasta Își păstrează valoarea de la o procedură la alta.
Variabile publice
Dacă trebuie să faceți o variabilă disponibilă pentru toate procedurile în toate dvs. Modulele VBA
dintr - un registru de lucru, declarați variabila la nivel de modul (în Declarații) utilizând cuvântul
cheie public. Iată un exemplu:
Cuvântul cheie public face ca variabila CurrentRate să fie disponibilă pentru orice procedură În
registrul de lucru - chiar și în celelalte module VBA. Trebuie să inserați Această declarație înainte de
prima instrucțiune Sub sau Funcție într-un modul.
Dacă doriți ca o variabilă să fie disponibilă pentru module din alte registre de lucru, Trebuie să
declarați variabila ca fiind publică și să stabiliți o referință la registrul de lucru Care conține declarația
variabilei. Configurați o referință utilizând InstrumentândreaReferences comanda în VBE. În practică,
partajați o variabilă între ele Registrele de lucru nu se mai fac niciodată. De fapt, n-am mai făcut-o
niciodată o dată în întreaga mea VBA cariera de programare. Dar cred că este bine să știți că se
poate face, în Cazul în care apare vreodată ca o primejdie! întrebare.
Variabile statice
În mod normal, când se încheie o procedură, toate variabilele procedurii sunt resetate. Variabilele
statice reprezintă un caz special, deoarece își păstrează valoarea chiar și atunci când Procedura se
încheie. Voi declarați o variabilă statică la nivelul procedurii. A Variabila statică poate fi utilă dacă
aveți nevoie să urmăriți numărul de ori Executa o procedura. Puteți declara o variabilă statică și o
puteți incrementa fiecare Când executați procedura.
După cum se arată în exemplul următor, declarați variabilele statice utilizând Cuvânt cheie static:
Codul ține evidența numărului de execuții a procedurii Și afișează numărul într-o casetă de mesaje.
Valoarea variabilei Counter Nu se resetează când procedura se termină, dar este resetată când
închideți și Redeschideți registrul de lucru.Chiar dacă valoarea unei variabile declarate ca Static este
reținută după o variabilă
Se încheie, această variabilă nu este disponibilă pentru alte proceduri. În MySub precedent
Exemplu de procedură, variabila Counter și valoarea sa sunt disponibile numai în cadrul Procedura
MySub. Cu alte cuvinte, este o variabilă la nivel de procedură.
Viața variabilelor
Nimic nu trăiește pentru totdeauna, inclusiv variabilele. Domeniul de aplicare al unei variabile nu
numai Determină unde poate fi utilizată această variabilă, afectează, de asemenea, circumstanțele
Variabila este scoasă din memorie.
Puteți șterge toate variabilele din memorie utilizând trei metode:
✓ Faceți clic pe butonul Resetați bara de instrumente (butonul albastru pătrat de pe Bara de
instrumente standard din VBE).
✓ Faceți clic pe "End" când se afișează o casetă de dialog pentru eroarea de rulare.
✓ Includeți o declarație de sfârșit oriunde în codul dvs. Nu este același lucru Ca declarație End Sub
sau End Function.
În caz contrar, numai variabilele de nivel de procedură vor fi eliminate din memorie Când codul
macro a terminat să fie difuzat. Variabile statice, nivel de modul Variabilele și variabilele globale
(publice) își păstrează toate valorile între runde Din codul dvs.
Dacă utilizați variabile la nivel de modul sau la nivel mondial, asigurați-vă că acestea au Valoarea pe
care o așteptați să o aibă. Niciodată nu știți dacă una dintre situații Tocmai am menționat că poate
că ți-au pierdut conținutul!
Lucrul cu constantele
Valoarea unei variabile poate (si de obicei nu) se schimba in timp ce procedura este executare. De
aceea ei o numesc variabilă. Uneori trebuie să te referi la O valoare sau un șir care nu se schimbă
niciodată. Într-un astfel de caz, aveți nevoie de o constantă – a Element numit a cărui valoare nu se
schimbă.
După cum se arată în exemplele de mai jos, declarați constantele utilizând Const declarație.
Declarația declarației oferă, de asemenea, valoarea constantă:
Folosirea constantelor în locul valorilor codate greu sau a șirurilor este o programare excelentă
practică. De exemplu, dacă procedura dvs. trebuie să se refere la una specific (Cum ar fi o rată a
dobânzii) de mai multe ori, este mai bine să declarați valoarea Ca o constantă și se referă mai
degrabă la numele său decât la valoare. Asta te face Cod mai ușor de citit și mai ușor de schimbat. Și
dacă rata dobânzii se schimbă, tu Trebuie să schimbe o singură declarație decât mai multe.
Spre deosebire de o variabilă, valoarea unei constante nu variază. Dacă încercați să Modificați
valoarea unei constante într-o rutină VBA, primiți o eroare. Asta nu este Prea surprinzător pentru că
valoarea unei constante trebuie să rămână constantă. daca tu Trebuie să modificați valoarea unei
constante în timp ce codul dvs. rulează, ce faceți Adevăr nevoie este o variabilă.
Constante prestabilite
Excel și VBA conțin mai multe constante predefinite, pe care le puteți utiliza fără Nevoia de a le
declara singuri. Aparatul de înregistrare macro utilizează de obicei Constante, mai degrabă decât
valori reale. În general, nu trebuie să știți Valoarea acestor constante să le folosească. Următoarea
procedură simplă folosește a Built-in constant (xlCalculationManual) pentru a modifica proprietatea
Calculation din Obiectul Cerere. (Cu alte cuvinte, aceasta modifică recalcularea Excel Mod manual.)
Deci, valoarea reală a constantei xlCalculationManual încorporată este -4135. Evident, este mai ușor
să folosiți numele constantei decât să încercați să vă amintiți de acestea O valoare ciudată. După
cum puteți vedea, multe dintre constantele încorporate sunt doar arbitrare Numere care au un
înțeles special pentru VBA.
Pentru a găsi valoarea reală a unei constante încorporate, utilizați fereastra Imediat în VBE și
executați o declarație VBA cum ar fi:
Dacă fereastra Imediat nu este vizibilă, apăsați Ctrl + G. Semnul de întrebare este a Comenzi rapide
pentru tastarea tipăririi.
Când se declară o variabilă de șir cu o instrucțiune Dim, puteți specifica Lungimea maximă dacă o
cunoașteți (este un șir de lungime fixă) sau permiteți VBA să o manipuleze Dinamic (este un șir cu
lungime variabilă). Următorul exemplu declară Variabila MyString ca șir cu o lungime maximă de 50
de caractere. (Utilizare Un asterisc pentru a specifica numărul de caractere, până la 65 526 de
caractere Limita.) Stringul dvs. este, de asemenea, declarat ca un șir, dar lungimea sa este
nespecificată:
Când declarați un șir de lungime fixă care depășește 999, nu utilizați o virgule În numărul care
specifică dimensiunea șirului. De fapt, nu utilizați niciodată virgule când Introducerea unei valori
numerice în VBA. VBA nu-i place asta.
Lucrul cu datele
Un alt tip de date pe care îl considerați util este data. Puteți utiliza o variabilă de șir Pentru a stoca
datele, dar nu puteți efectua calcule de date. Utilizarea datei Tipul de date oferă o rutină mai mare
flexibilitate. De exemplu, este posibil să aveți nevoie Pentru a calcula numărul de zile între două
date. Acest lucru ar fi imposibil (Sau cel puțin extrem de provocator) dacă ați folosit șiruri de
caractere pentru a vă ține datele.
O variabilă definită ca o dată poate conține date care variază de la 1 ianuarie 0100,Până la 31
decembrie 9999. Aceasta este o perioadă de aproape 10.000 de ani și mai mult decât Suficient
pentru chiar și cea mai agresivă prognoză financiară. De asemenea, puteți utiliza funcția Datele de
date date pentru a lucra cu date de timp (VBA nu are un tip de date de timp).
Aceste exemple afișează variabilele și constantele ca date de tip Date:
În VBA, plasați datele și orele între două mărci de tip hash, după cum se arată în Exemplele
precedente.
Variabilele de date afișează datele în funcție de formatul datei scurte a sistemului dvs.,
Și ele afișează orele în funcție de formatul de timp al sistemului (fie 12-, fie Formatare de 24 de ore).
Registrul Windows stochează aceste setări și tu Poate să le modifice prin caseta de dialog Regional și
Language Options din Panoul de control Windows. Prin urmare, formatul de dată sau de dată afișat
de VBA Poate varia, în funcție de setările pentru sistemul pe care se aplică aplicația rulează.
Când scrieți codul VBA, totuși, trebuie să utilizați unul dintre formatele de date din S.U.A.
(Cum ar fi mm / zi / aaaa). Deci, următoarea declarație atribuie o zi în luna octombrie
(Nu noiembrie) la variabila MyDate (chiar dacă sistemul dvs. este setat să utilizeze zgomotul dd /
Mm / aaa pentru datele):
.. . O combinație de cuvinte cheie, operatori, variabile și constant Dă un șir, un număr sau un obiect.
O expresie poate fi folosită pentru a efectua a Calculați, manipulați caracterele sau testați datele.
Nu puteam să-mi spun mai bine, așa că nici nu voi încerca.
O mare parte din munca dvs. în VBA implică dezvoltarea (și depanarea) expresiilor. Dacă știți cum să
creați formule în Excel, nu veți avea probleme în a crea expresii. Cu o formulă de foaie de lucru, Excel
afișează rezultatul într-o celulă. A Expresia VBA, pe de altă parte, poate fi atribuită unei variabile.
Expresiile pot fi la fel de complexe cum trebuie să fie ele; Utilizați continuarea liniei Caracter (un
spațiu urmat de o subliniere) pentru a face expresii lungi Mai ușor de citit. Deseori, expresiile
utilizează funcții: funcțiile încorporate ale VBA, foaia de lucru Excel Funcții sau funcții pe care le
dezvoltați cu VBA. Eu discut funcțiile în Capitolul 9.
Despre semnul egal
După cum puteți vedea în exemplul precedent, VBA folosește semnul egal ca al său Cesiune
operator. Probabil sunteți obișnuiți să utilizați un semn egal ca Un simbol matematic pentru
egalitate. Prin urmare, o declarație de atribuire cum ar fi Următoarele vă pot determina să ridicați
sprancenele:
În ce univers nebun este z egal cu el însuși plus 1? Răspuns: Nici un univers cunoscut. În acest caz,
instrucțiunea de atribuire (când este executată) crește Valoarea z cu 1. Deci, dacă z este de 12,
executarea instrucției face z egală cu 13. Amintiți-vă că o misiune utilizează semnul egal ca operator,
nu a Simbol al egalității.
Operatori netede
Operatorii joacă un rol major în VBA. Pe lângă operatorul de semne egale (discutat În secțiunea
anterioară), VBA oferă mai mulți operatori. Tabelul 7-3 Listează acești operatori. Acestea ar trebui să
fie familiare pentru dvs., deoarece acestea sunt Acei operatori utilizați în formulele foilor de lucru
(cu excepția operatorului Mod). Atunci când se scrie o formulă Excel, modulo aritmetică se face
folosind MOD funcţie. De exemplu, următoarea formulă returnează 2 (restul când Împărțiți 12 cu 5):
În VBA, operatorul Mod este folosit ca acesta (și z are o valoare de 2):
Termenul de concatenare este programator vorbesc pentru "se unesc împreună". Astfel, dacă tu
Concatenați șiruri de caractere, combinați șiruri de caractere pentru a crea un nou și îmbunătățit
şir.
După cum se arată în Tabelul 7-4, VBA oferă de asemenea un set complet de operatori logici. De
Acestea, Nu, Și, și Or sunt cele mai frecvent utilizate. N-am văzut pe nimeni să o folosească
Ceilalți trei operatori logici.
Ordinea precedentă pentru operatorii din VBA este exact aceeași ca în Excel formule. Exponentierea
are cea mai mare prioritate. Înmulțire și împărțire Următorul, urmat de adăugare și scădere. Puteți
utiliza paranteze Pentru a schimba ordinea prioritară naturală, făcând tot ce este în formă de
sandwich În paranteze veniți înaintea oricărui operator. Aruncați o privire la acest cod:
Când acest cod este executat, care este valoarea lui z? Dacă ați răspuns la 13, voi Obțineți o stea de
aur care să dovedească că înțelegeți conceptul de precedent al operatorului. Dacă ați răspuns la 16,
citiți: Operația de multiplicare (5 * y) Este efectuată mai întâi și rezultatul este adăugat la x. Dacă ați
răspuns la ceva Altele decât 13 sau 16, nu am nici un comentariu.
Apropo, am lucruri mai importante de reținut decât modul în care operatorul Lucruri precedente,
așa că am tendința de a utiliza paranteze chiar și atunci când nu sunt necesar. De exemplu, în viața
reală, aș scrie acea declarație de ultimă sarcină asa:
Nu fi timid să folosiți paranteze, chiar dacă acestea nu sunt necesare - în special Dacă acest lucru
face codul dvs. mai ușor de înțeles. VBA nu-i pasă dacă Utilizați paranteze suplimentare.
Declararea matricelor
Înainte de a putea utiliza o matrice, trebuie să o declarați. Fara exceptii. Spre deosebire de
normal Variabile, VBA este foarte strictă în legătură cu această regulă. Voi declarați o
matrice cu un Dim Sau Declarație publică, așa cum declarați o variabilă regulată. Totuși, și tu
Trebuie să specificați numărul de elemente din matrice. Faceți acest lucru specificând Primul
număr al indexului, cuvântul cheie Către și ultimul număr al indexului – toate În paranteze.
Următorul exemplu arată modul de declarare a unei matrice de 100 de numere întregi:
Când declarați o matrice, puteți alege să specificați numai indexul superior. Dacă omiteți
indexul inferior, VBA presupune că este 0. Prin urmare, ambele Următoarele declarații
declară aceeași matrice de 101 elemente:
Dacă doriți ca VBA să presupună că 1 (mai degrabă decât 0) este indicele inferior pentru dvs.
Include următoarele afirmații în secțiunea Declarații din secțiunea dvs. modul:
Această instrucțiune obligă VBA să utilizeze 1 ca primul număr de index pentru acele array-
uri Declară doar indicele superior. Dacă această afirmație este prezentă, următoarele
afirmații Sunt identice, ambele declarând o matrice de 100 de elemente:
Matrici multidimensionale
Matricele create în exemplele anterioare sunt toate mesele unidimensionale.
Gândiți-vă la matricele unidimensionale ca la o singură linie de valori. Arrays pe care le
creați În VBA pot avea până la 60 de dimensiuni - deși rareori aveți nevoie de mai mult
Decât două sau trei dimensiuni într-o matrice. Următorul exemplu declară un Set de 81 de
integer cu două dimensiuni:
Această instrucțiune atribuie o valoare unui singur element din matrice. Dacă te gândești
A matricei în termeni de o matrice de 9 x 9, aceasta atribuie 125 elementului Localizat în al
treilea rând și în a patra coloană a matricei.
Iată cum să declarați o matrice tridimensională, cu 1.000 de elemente:
Vă puteți gândi la o matrice tridimensională ca un cub. Vizualizarea unei game de Mai mult
de trei dimensiuni este mai dificilă. Îmi pare rău, încă nu am stapanit A patra dimensiune și
dincolo.
Matrice dinamice
De asemenea, puteți crea matrice dinamice. O matrice dinamică nu are o presetare
Numărul de elemente. Declare o matrice dinamică cu un set gol de paranteze:
Înainte de a putea utiliza această matrice, trebuie să utilizați instrucțiunea ReDim pentru a
spune VBA Câte elemente are matricea. De obicei, numărul elementelor din Matricea este
determinată în timp ce codul dvs. rulează. Puteți folosi instrucțiunea ReDim De câte ori,
schimbarea mărimii matricei ori de câte ori este necesar. Exemplul următor demonstrează
modul de modificare a numărului de elemente din a Dinamic. Se presupune că variabila
NumElements conține o valoare, Pe care le-a calculat codul.
Când redimensionați o matrice utilizând ReDim, eliminați toate valorile în present Stocate în
elementele matricei. Puteți evita distrugerea vechilor valori Utilizând cuvântul cheie
Conservare. Următorul exemplu arată cum puteți Păstrați valorile unei matrice când
redimensionați matricea:
Utilizarea etichetelor
În versiunile inițiale ale BASIC, fiecare linie de cod necesită un număr de linie. Pentru
De exemplu, dacă ați fi scris un program BASIC în anii '70 (îmbrăcați, bineînțeles, În fundul
dvs. de clopot), s-ar putea să se fi uitat în felul următor:
VBA permite utilizarea unor astfel de numere de linie și chiar permite etichetarea textului.
Tu
Nu folosiți în mod obișnuit o etichetă pentru fiecare linie, dar ocazional trebuie să o utilizați
o eticheta. De exemplu, introduceți o etichetă dacă utilizați o declarație GoTo (despre care
discut În capitolul 10). O etichetă trebuie să înceapă cu primul caracter nonblank pe o linie
Și se termină cu un colon.
Informațiile din acest capitol devin mai clare pe măsură ce citiți ulterior capitole. Dacă doriți
să aflați mai multe despre elementele de limbaj VBA, mă refer La sistemul de ajutor VBA.
Puteți găsi cât mai multe detalii de care aveți nevoie sau Grijă, să știu.