Pentru a scrie un cod eficient VBA, trebuie să înveți câteva tehnici simple. Înregistratorul macro definește strict domeniul de date gestionat, de exemplu A1: L87601. Deși acest cod funcționează eficient cu setul de date actual, este posibil să nu se aplice seturilor noi de date. Prin urmare, este recomandabil să creați un cod care să poată procesa intervale de date de dimensiuni diferite.
Pentru a vă referi la o celulă, recorderul macro utilizează sintaxa Range ("H12"). Cu toate acestea, există o modalitate mai eficientă de a crea o referință, de exemplu, la o celulă din rândul 12 din coloana 8, care utilizează sintaxa celulelor (12,8). În mod similar, înregistratorul macro va face referire la o gamă rectangulară de celule folosind sintaxa Range ("A1: L87601"). Cu toate acestea, pentru o mai mare flexibilitate, ar trebui să utilizați metoda Cells () pentru a specifica colțul din stânga sus al intervalului și apoi să utilizați metoda Resize () pentru a determina numărul de rânduri și coloane din interval. Această metodă este folosită de unii dezvoltatori atunci când creează o arcadă pe un computer. Sintaxa alternativă pentru descrierea intervalului anterior este Cells (1,1) .Resize (8760l / 12). Această metodă oferă mai multă flexibilitate, deoarece devine posibilă înlocuirea oricărui număr de variabile.
În interfața de utilizare Excel, puteți utiliza tasta de terminare pentru a ajunge la sfârșitul intervalului de date. Dacă plasați cursorul în linia finală a foii de lucru și apăsați End. cursorul va merge la ultima linie de date. În VBA, codul echivalent are următoarea formă:
Nu este necesar să selectați celula în sine - trebuie doar să determinați numărul ultimei linii. Următorul cod indică un șir și stochează numărul său în variabila FinalRow:
Nu este nimic magic despre numele variabilei FinalRow. Această variabilă poate fi atribuită unui nume diferit, de exemplu x, y sau orice altceva. Cu toate acestea, deoarece este mai bine să utilizați nume de variabile descriptive în VBA, sunt recomandate nume precum FinalRow pentru a descrie șirul rezultat.
De asemenea, puteți defini ultima coloană din setul de date. Dacă sunteți sigur că setul de date începe cu linia 1, puteți utiliza tasta de terminare în combinație cu tasta ← pentru a vă deplasa de la celula XFD1 la ultima coloană a tabelului care conține datele. Pentru a vă asigura că acest cod este rulat în versiuni vechi ale Excel, puteți utiliza următorul cod:
Folosind combinațiile de taste END + ↓ și END + ↑
Mulți cred că pentru a determina ultima linie a intervalului care începe în celula A1, ar trebui să apăsați combinația de taste End + A. Nu vă bazați pe această metodă, deoarece datele transferate de la un alt sistem pot fi incomplete. Dacă programul a importat 500 000 de rânduri dintr-un sistem informatic învechit în ultimii cinci ani, o valoare zero poate apărea în setul de date într-un punct. Aceasta va duce la o celulă goală sau chiar la un rând în mijlocul setului de date. În această celulă se termină expresia Range ("A1"). Sfârșit (xlDown). ceea ce va duce la pierderea altor date. Existența unei celule goale poate duce la faptul că în raportul zilnic vor lipsi mii de linii de date, ceea ce va submina credibilitatea raportului și pentru dumneavoastră personal. Efectuați o operație suplimentară pentru a merge la ultima linie a foii de lucru, ceea ce va reduce drastic probabilitatea de erori.