Rezumat
Acest articol conține exemple de proceduri Microsoft Visual Basic for Applications pe care le puteți utiliza pentru a lucra cu mai multe tipuri de matrice.
Mai multe informații
Microsoft oferă exemple de programare doar pentru ilustrație, fără garanție exprimată sau implicită. Aceasta include, dar nu se limitează la, garanțiile implicite de vandabilitate sau potrivire pentru un anumit scop. Acest articol presupune că sunteți familiarizat cu limbajul de programare care este demonstrat și cu instrumentele utilizate pentru a crea și a depana procedurile. Inginerii de asistență Microsoft vă pot ajuta să explicați funcționalitatea unei anumite proceduri, dar nu vor modifica aceste exemple pentru a oferi funcționalități suplimentare sau proceduri de construcție care să îndeplinească cerințele dvs. specifice. NOTĂ: În procedurile Visual Basic for Applications, cuvintele de după apostrof (') sunt comentarii.
Pentru a completa o matrice, apoi a o copia într-o foaie de lucru
-
Deschideți un registru de lucru nou și inserați o foaie de modul Visual Basic.
-
Tastați următorul cod în foaia modulului.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Selectați Foaie1.
-
În meniul Instrumente, indicați spre Macrocomandă, apoi faceți clic pe Macrocomenzi.
-
În caseta de dialog Macrocomandă, faceți clic pe Sheet_Fill_Array, apoi faceți clic pe Rulare.
Pentru a prelua valori dintr-o foaie de lucru și a completa matricea
-
Tastați valori în Foaie1 în celulele A1:A10.
-
Pe o foaie de modul Visual Basic, tastați următorul cod:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selectați Foaie1.
-
În meniul Instrumente, indicați spre Macrocomandă, apoi faceți clic pe Macrocomenzi.
-
În caseta de dialog Macrocomandă, faceți clic pe from_sheet_make_array, apoi faceți clic pe Rulare.
Pentru a trece și a primi o matrice
-
Pe o foaie de modul, tastați următorul cod:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selectați Foaie1 și evidențiați zona A1:A10.
-
În meniul Instrumente, indicați spre Macrocomandă, apoi faceți clic pe Macrocomenzi.
-
În caseta de dialog Macrocomandă, faceți clic pe pass_array, apoi pe Rulare.
Pentru a compara două matrice
-
Creați două zone denumite în Foaie1. Denumiți o zonă1 și cealaltă zonă2.
De exemplu, evidențiați zona de celule A1:A10 și denumiți zona1; evidențiați zona de celule B1:B10 și denumiți-o zona2. -
Tastați următorul cod în foaia modulului.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Selectați Foaie2.
-
În meniul Instrumente, indicați spre Macrocomandă, apoi faceți clic pe Macrocomandă.
-
În caseta de dialog Macrocomandă, faceți clic pe compare_two_array, apoi faceți clic pe Rulare.
Veți vedea o casetă de mesaj pentru fiecare comparație.
Pentru a completa o matrice dinamică
-
Pe o foaie de modul, tastați următorul cod:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
În meniul Instrumente, indicați spre Macrocomandă, apoi faceți clic pe Macrocomenzi.
-
În caseta de dialog Macrocomandă, faceți clic pe fill_array, apoi faceți clic pe Rulare.
NOTĂ: Modificarea variabilei "number_of_elements" va determina dimensiunea matricei.