Taula de continguts
Una matriu és una variable que conserva els mateixos tipus de dades. Si només hi ha una fila o una columna de dades, es coneix com a matriu unidimensional. Tanmateix, quan hi ha més d'una fila i columna, s'anomena matriu 2D. Utilitzem ReDim per canviar la mida d'una matriu en VBA. A més, utilitzem la paraula clau Conserva amb la ReDim per mantenir intactes les dades antigues. Aquest article us mostrarà 2 maneres ràpides de " ReDim Preserve " una matriu 2D a Excel VBA .
Baixeu el quadern de pràctiques
Macro to ReDim Preserve 2D.xlsm
2 enfocaments útils per ReDim Preserve 2D Array a Excel VBA
Aquest és el conjunt de dades base creat a partir d'una matriu 2D amb tres files i dues columnes. En primer lloc, crearem aquesta matriu. Aleshores, afegirem una altra columna a aquesta matriu. Per fer-ho, farem servir " ReDim Preserve ". A més, demostrarem què passa si no fem servir això.
Per defecte, només podem canviar la mida de l'última dimensió de la matriu (és a dir, les columnes o el límit superior). Transposarem la matriu, després canviarem l'última dimensió i, a continuació, tornarem a transposar per canviar la mida de les dues dimensions de la matriu 2D a Excel VBA.
1 ReDim Preserve Last Dimension 2D Array
Primer definirem la matriu 2D com a dinàmica. Aleshores, utilitzant la instrucció ReDim , crearem unmatriu amb tres files i dues columnes. Finalment, tornarem a utilitzar la instrucció ReDim amb la Preserve paraula clau per augmenta el límit superior de la matriu bidimensional.
Pasos:
- Per començar, premeu ALT+F11 per obrir la finestra Mòdul VBA . Com a alternativa, podeu fer-ho des de la pestanya Desenvolupador → seleccioneu Visual Basic .
- A continuació, des de la Visual Basic . 1> Insereix la pestanya → seleccioneu Mòdul . Escrivim el codi VBA aquí.
- A continuació, escriviu el codi següent al Mòdul finestra.
8466
Desglossament del codi VBA
- En primer lloc, estem trucant el Sub procediment “ Redim_Preserve_2D_Array_Row ”.
- A continuació, declarem la variable Our_Array com una matriu dinàmica.
- A continuació, definim la mida de la matriu. El límit inferior és 3 , el límit superior és 2 i tots dos comencen des de 1 .
- A continuació, assignem valors a la matriu. .
- Després d'això, introduïm els valors a l'interval de cel·les C6:D8 .
- Després d'això, executarà el codi.
- Així, Desa el mòdul i premeu Executar .
- Com a resultat, retornarà els valors als intervals de cel·les definits. Podem veure que " Rachel " es troba a la fila 1 i la columna 1 ,que es va definir com ( 1,1 ) al codi VBA.
- Ara, canviarem la mida de la matriu.
- Per tant, afegiu-ho al codi anterior i elimineu la primera Declaració Range.Value . A més, podeu veure com es veu el codi a la instantània següent.
6771
- Aquí hem augmentat el límit superior de ( 1 A 2 ) a ( 1 A 3 ) per 1 .
- Llavors, hem afegit els valors a la matriu.
- Ara si executem aquest codi, veurem que els valors anteriors no es conserven. Tornarà en blanc per als valors anteriors.
- Ara, podem solucionar-ho afegint la Conserva la paraula clau a la Declaració ReDim .
- Finalment, el nostre codi complet serà aquest.
1981
- Ara, si Executeu aquest codi, aleshores la sortida serà així. Així, " ReDim Preserve " l'última dimensió d'una matriu 2D a Excel VBA. Ara, el següent mètode us mostrarà com " ReDim Preserveu ” i canvieu la mida de les dues dimensions de la matriu.
Més informació: VBA per obtenir un únic Valors de la columna a la matriu a Excel (3 criteris)
Lectures similars
- Com anomenar una matriu de taula a Excel (amb Passos fàcils)
- Excel VBA per llegir fitxers CSV a matriu (4 exemples ideals)
- Com convertir l'interval en matriu a ExcelVBA (3 vies)
- Excel VBA: elimina els duplicats d'una matriu (2 exemples)
2. ReDim Conserva les dues dimensions de la matriu 2D a Excel VBA
En aquest mètode final, us mostrarem els passos per canviar la mida i " ReDim Preserve " la matriu 2D . Aquí, utilitzarem la funció VBA Transpose per canviar la mida del límit inferior de la matriu. Si vam intentar canviar la mida del límit inferior de la matriu en el primer mètode, veurem l'error " Subíndex fora de rang ". Ara, sense més preàmbuls, vegem com podem solucionar-ho i assolir el nostre objectiu.
Pasos:
- En primer lloc, tal com es mostra al primer mètode , obre la finestra Mòdul .
- En segon lloc, afegiu les següents línies de codi a la primer codi.
9390
- A més, el codi del mètode final té aquest aspecte.
8924
Desglossament del codi VBA
- En primer lloc, anomenem el Sub procediment " ReDim_Preserve_2D_Array_Both_Dimensions " .
- Llavors, la resta de codis fins a la funció VBA Transpose són els mateixos que en el primer codi.
- Aquí, estem transposant la matriu.
- A continuació, estem augmentant el límit superior de la matriu.
- Després, tornem a transposar la matriu. Per tant, finalment canviarà el límit inferior.
- A continuació, introduïm els valors per a la matriu redimensionada mentreconservant les dades antigues.
- Per últim, escrivim els valors a l'interval de cel·les C6:E9 .
- Després que, com es mostra al primer mètode , Executeu aquest codi.
- Així, podem visualitzar com el codi conserva un Matriu 2D mitjançant la funció “ ReDim Preserve ” i la funció VBA Transpose .
Més informació: VBA per transposar matriu a Excel (3 mètodes)
Coses per recordar
- ReDim Preserve no pot canviar el límit inferior de la matriu. Per fer-ho, hem d'utilitzar la funció Transposa .
- Només podem utilitzar ReDim en matrius dinàmiques.
Conclusió
Us hem mostrat dues maneres ràpides de " ReDim Preserve " una 2D matriu a Excel VBA. Si teniu cap problema amb aquests mètodes o teniu cap comentari per a mi, no dubteu a comentar a continuació. A més, podeu visitar el nostre lloc ExcelWIKI per obtenir més articles relacionats amb Excel. Gràcies per llegir, segueix excel·lent!