Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Documente similare
Metode avansate de gestiune a documentelor și a sistemelor de calcul - LABORATOR 1 -

Laborator 3

proiectarea bazelor de date

Diapositive 1

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Minicurs CCS C / Aplicatia1 1.Programul CCS C Compiler. Instalare.Creare proiect. Descarcati ultima versiune a programului de

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Tablouri (continuare)

Microsoft Word - CarteC.doc

SRS-BTS50_QSG_ro

Microsoft Word _POO_Lab_1_Modificari_v01.htm

SUBPROGRAME

Subiectul 1

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Paradigme de Programare

LUCRAREA NR

Metode avansate de gestiune a documentelor și a sistemelor de calcul - curs 1 -

E_d_Informatica_sp_MI_2015_bar_02_LRO

Информационная система персонализации, печати и учета документов об образовании

EXCEL FĂRĂ SECRETE Grafice şi diagrame

E_d_Informatica_sp_SN_2014_bar_10_LRO

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Managementul Resurselor Umane

Laborator 7: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea I - proceduri) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de blo

MANUAL UTILIZARE ANGAJATORI PISA 2.0 Aplicatia este accesibila de pe siteurile: respectiv de la buto

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

Object Oriented Programming

Proiectarea Sistemelor Software Complexe

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Microsoft Word - CarteC.doc

Programarea şi utilizarea calculatoarelor

Top

Lanțul de aprovizionare E.ON Ghidul furnizorului Instrucțiuni pas cu pas

PHP (II)

Microsoft Word - CarteC.doc

Ghid de utilizare pentru Platforma E-Admitere intranet.inj.md

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

BC-2000 Control Acces

CL2009R0976RO bi_cp 1..1

Calcul Numeric

Politica N21 privind modulele Cookie mobile Network TwentyOne se angajează să vă protejeze pe dumneavoastră și orice date (anonime sau de altă natură)

Utilizarea îmbinării corespondenței pentru crearea şi imprimarea scrisorilor şi a altor documente Dacă utilizați îmbinarea corespondenței când doriți

Matematici aplicate științelor biologie Lab06 MV

Microsoft Word - 2 Filtre neliniare.doc

Declararea variabilelor

manual_ARACIS_evaluare_experti_v4

Introducere în limbajul JavaScript

Mai multe despre optimizare

Microsoft Word - PRIVACY-POLICY-and-cookies_RO_vDec2018.docx

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Intrebari Frecvente 1. Cum pot deschide un cont PayPal? Iata cum deschideti un cont: 1. Duceti-va la site-ul nostru: 2. Faceti clic

metro-privacy

Matematici aplicate științelor biologie Lab05 MV

Laborator 8: PROIECTAREA BAZELOR DE DATE SUBPROGRAME in PL/SQL (partea II - functii) Un subprogram este un bloc PL/SQL cu nume (spre deosebire de bloc

PowerPoint Presentation

ALGORITHMICS

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

Microsoft Word - Algoritmi genetici.docx

manual_ARACIS_evaluare_experti_v5

Microsoft Word - PCLP2_Curs_4_2019.doc

tehnologii web

Microsoft Word - cap1p4.doc

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Lab6LCD

Microsoft Word - ADA_Raspuns_clarificare_2.docx

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

GET-UP_Module 7_Unit 3_PPT_Final - RO

Slide 1

OPERATII DE PRELUCRAREA IMAGINILOR 1

Slide 1

Microsoft Word - Privacy Statement Romanian JobXion.doc

1. Depistarea setarilor de retea necesare Primul pas pentru introducerea in retea a DVR-ului este determinarea setarilor de retea cu care lucreaza ret

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Ghid de instalare ebook Pentru a accesa ebook-ul trebuie să creați un cont pe raftul de cărți VitalSource (Bookshelf account) iar apoi să introduceți

Tema laborator TS.NET 2019 Vom simula (partial, in scop didactic) activitatea unui service auto. Pentru aceasta vom considera urmatoarele tipuri: Clie

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Backtracking_2018

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

METODE NUMERICE ÎN INGINERIE

L7

BANCNOTELE DIN SERIA EUROPA

Spatii vectoriale

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

ORDIN Nr. 2779/2017 din 28 septembrie 2017 pentru aprobarea modelului și conținutului formularului 110 "Declarație de regularizare/cerere de restituir

Ingineria Sistemelor de Programare

Instructiuni pt. depunerea declaratiei A4200 Declaratia A4200 se construieste pornind de la o colectie de fisiere XML, reprezentand fiecare o zi fisca

010

Limbaje de Programare Curs 8 – Fisiere

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Microsoft Word - dec_070_2013.doc

COMISIA EUROPEANĂ DIRECȚIA GENERALĂ INFORMATICĂ Componenta de aplicare a politicii WiFi4EU Ghid de implementare v1.0 Cuprins 1. Introducere Br

Adresarea memoriei Modurile de adresare constituie un instrument principal pentru reprezentarea în memorie a imaginii datelor, aşa cum este ace

Programarea şi utilizarea calculatoarelor

010

Transcriere:

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut să stocați douăzeci de nume de angajați în variabile pentru a le utiliza într-o procedură. O modalitate de a face acest lucru ar fi crearea a 20 de variabile numite, de exemplu, angajat1, angajat2, și așa mai departe. Cu toate acestea, este mult mai eficient să creați o singură variabila angajati de tip vector care poate conține până la 20 de nume. VBA creează o singură variabilă cu 20 de "locații" diferite în care puteți adăuga date (cum ar fi numele angajaților). O astfel de variabilă vector (array în engleză) este asemănătoare cu o plajă Excel care conține 20 de celule într-un rând sau o coloană: intervalul este o singură entitate, dar conține 20 de locații (celule) în care puteți introduce date. Diferența majoră este că aproape întotdeauna folosiți o variabilă de tip array pentru a reține datele unui singur tip de dată, cum ar fi String. Când declarați o variabilă a matricei, specificați tipul de date, după cum se arată aici: Dim angajati (19) As String După cum puteți vedea, această declarație este foarte asemănătoare cu cea pe care ați folosi-o pentru o variabilă obișnuită. Diferența este numărul 19 închis între paranteze. Parantezele spun VBA că declarați un vector, iar numărul indică VBA câte elemente veți avea în vector. De ce 19 în loc de 20? Ei bine, fiecărui element din matrice îi este atribuit un indice, unde indicele primului element este 0, cel de-al doilea este 1 și așa mai departe, ultimul indice fiind 19. De aceea, numărul total de elemente din această matrice este de 20. Utilizați un indice pentru a accesa un element din vector prin includerea indicelui între paranteze, cum ar fi: angajati(2) = "Popescu"

În mod implicit, indicile matricelor VBA încep la 0 (aceasta se numește limita inferioară a matricei) și continuă până la numărul pe care îl specificați în instrucțiunea Dim (aceasta se numește limita superioară a matricei). Dacă preferați ca indicele inferior să înceapă la 1, includeți următoarea instrucțiune în partea superioară a modulului (cu alte cuvinte, înainte de a declara prima functie): Option Base 1 Rețineți, de asemenea, că după resetarea limitei inferioare în acest fel, dacă doriți să declarați un vector cu același număr de elemente, atunci trebuie să ajustați în mod corespunzător limita superioară din instrucțiunea Dim. De exemplu, dacă limita inferioară este setată la 1, dacă doriți să declarați un vector numit angajati care să conțină 20 de nume, atunci trebuie să declarați: Dim angajati (20) As String

Alocare dinamică Declararea unui vector sau matrici cu instrucțiunea Dim permite doar folosirea numerelor pentru definirea limitei inferioare sau superioare a vectorului sau matricii. Dacă dorim dimensionarea dinamică a vectorului sau matricii funcție de valoarea unei variabile se folosește instrucțiunea ReDim. Dim angajati () As String... n = 10 ReDim angajati (n) Remarcați că în instrucțiunea ReDim nu am mai declarat tipul de dată (As String). Declararea unui vector sau matrici cu alocare dinamică poate fi simplificată eliminând complet instrucțiunea Dim, ca mai jos:... n = 10 ReDim angajati (n) As String În acest caz folosim doar instrucțiunea ReDim pentru a declara și inițializa vectorul angajati cu limita superioară n, specificând și tipul de data (String). Matrici Dacă introduceți un singur număr între paranteze într-o instrucțiune Dim, VBA creează o matrice unidimensională (vector). Puteți crea matrici cu două sau mai multe dimensiuni (60 este maximul) declarand limitele superioare ale ficărei dimensiuni separate prin virgule. De exemplu, să presupunem că doriți să stocați atât numele, cât și prenumele în tabloul angajati. Pentru a stoca două seturi de date cu fiecare element, declarăm o matrice bidimensională, după cum urmează:

Dim angajati (19, 1) As String Indicii pentru cel de-al doilea număr funcționează le fel ca indicii pe i-am văzut deja. Cu alte cuvinte, încep de la 0 și continuă până la numărul pe care îl specificați. Deci, această declarație Dim stabilește un "tabel" (sau o matrice, așa cum se numește de obicei) cu 20 de rânduri (câte unul pentru fiecare angajat) și două "coloane" (unul pentru nume și unul pentru prenume). Deci, dacă o matrice unidimensională este ca o plajă Excel compusă din celule într-un singur rând sau coloană, o matrice bidimensională este ca o plajă Excel compusă din celule în mai multe rânduri sau coloane. Iată două instrucțiuni care inițializează datele pentru primul angajat: angajati (2, 0) = "Popescu" angajati (2, 1) = "Mircea" Transmiterea unei plaje de celule din Excel în VBA Pentru a transmite valorile dintr-o plajă de celule din Excel în VBA, putem folosi obiectul Range (specific Excel, nu VBA). O funcție simplă care are ca parametru un obiect de tip Range este dat mai jos: Dim r As Integer, c As Integer, numar As Integer r = p.rows.count c = p.columns.count numar = p.count

Obiectul Range, denumit p în exemplul de mai sus, are trei proprietăți care pot fi folosite pentru a afla dimensiunea selecției (plajei): p.rows.count returnează numărul de rânduri ale selecției, p.columns.count returnează numărul de coloane ale selecției, respectiv p.count numărul de celule selectate. Pentru a citi o plajă de celule unidimensionlă (pe un rând, sau o coloană) într-un vector, putem folosi procedura de mai jos: Dim i As Integer If p.rows.count = 1 Or p.columns.count = 1 Then ReDim vect(1 To p.count) As Double For i = 1 To p.count vect(i) = p(i) Next i End If Pentru a citi o plajă bidimensională, procedura este și mai simplă, folsind tipul de dată Variant. Dim m m = p Variabila m este declarată ca Variant și prin operațiunea de atribuire m = p, variabila va fi atât inițializată cât și umpută cu valorile din plaja de celule p.