Acest tutorial va arăta cum se generează o matrice într-un interval folosind VBA.
Ieșire (imprimare) matrice la interval
Datele stocate într-o matrice pot fi transmise cu ușurință într-o foaie Excel. Există 3 moduri de a face acest lucru.
Date de ieșire la o gamă diferită
Am putea completa o matrice cu date dintr-un interval din Excel, iar apoi să trimitem datele într-un interval diferit din Excel.
12345678 | Public Sub TestOutput ()'declara matriceaDim rnArray () Ca variantă'populează matricea cu intervalulrnArray = Range ("A1: H24")'generează matricea într-o gamă diferită de celuleGama ("J1: Q24") = rnArray ()Sfârșitul Sub |
Întreaga matrice este copiată într-o singură linie de cod în matrice și apoi este trimisă în întregime la o gamă diferită de celule de pe foaie.
Buclarea printr-o matrice și transmiterea datelor
Acest exemplu va face o buclă printr-o matrice, ieșind matricea într-un interval.
12345678910111213 | Public Sub TestLoopArray ()'declara matriceaDim rnArray () Ca variantă'Declarați numărul întreg pentru a stoca numărul de rânduriDim iRw Ca întreg'Atribuiți intervalul unei variabile matricernArray = Range ("A1: A10")'parcurge valorile din matricePentru iRw = LBound (rnArray) To UBound (rnArray)„populează un interval diferit cu dateleCelule (iRw, 2). Valoare = rnArray (iRw, 1)Următorul iRwSfârșitul Sub |
LBoundși UBoundreturnează indicele inițial (legat inferior) și indicele final (legat superior) al unui tablou, în acest caz 1 și 10.
Transpune date matrice
De asemenea, putem transpune datele din matrice în foaia Excel. Transpose vă permite să afișați datele orizontal pe foaia Excel.
De exemplu, dacă avem o listă de stări în Excel și dorim să le transpunem.
Am putea rula apoi următorul cod:
12345678 | Public Sub TestOutputTranspose ()'declara matriceaDim rnArray () Ca variantă'populează-l cu gamarnArray = Range ("A1: A38")'transpune dateleGama (celule (1, 3), celule (1, 40)). Valoare = Application.Transpose (rnArray)Sfârșitul Sub |
Ceea ce ar rezulta în următoarele:
Ieșire la Debug.Print
De asemenea, putem transmite valorile matricei în fereastra de depanare.
12345678910111213 | Public Sub TestLoopArray ()'declara matriceaDim rnArray () Ca variantă'Declarați numărul întreg pentru a stoca numărul de rânduriDim iRw Ca întreg'Atribuiți intervalul unei variabile matricernArray = Range ("A1: A10")'buclă prin rânduri - de la 1 la 10Pentru iRw = 1 la UBound (rnArray)'ieșire în fereastra imediatăDebug.Print rnArray (iRw, 1)Următorul iRwSfârșitul Sub |