Table des matières
Un tableau est une variable qui conserve les mêmes types de données. S'il n'y a qu'une seule ligne ou une seule colonne de données, on parle de tableau unidimensionnel. Cependant, s'il y a plus d'une ligne et d'une colonne, on parle de tableau 2D. Nous utilisons ReDim pour redimensionner un tableau en VBA. De plus, nous utilisons la fonction Préserver avec le mot-clé ReDim pour garder les anciennes données intactes. Cet article vous montrera 2 des moyens rapides pour " Réserve ReDim " a Réseau 2D sur Excel VBA .
Télécharger le cahier d'exercices
Macro pour ReDim Préserver 2D.xlsm
2 méthodes pratiques pour préserver un tableau 2D dans Excel VBA
Il s'agit de l'ensemble de données de base créé à partir d'une Réseau 2D avec trois lignes et deux colonnes. Tout d'abord, nous allons créer ce tableau. Ensuite, nous allons ajouter une autre colonne à ce tableau. Nous allons utiliser la fonction " Réserve ReDim "De plus, nous montrerons ce qui se passe si nous ne l'utilisons pas.
Par défaut, nous ne pouvons redimensionner que la dernière dimension du tableau (c'est-à-dire les colonnes ou la limite supérieure). Nous allons transposer le tableau, puis modifier la dernière dimension, et enfin transposer à nouveau pour redimensionner les deux dimensions du tableau. Réseau 2D en Excel VBA.
1. ReDim Préserve la dernière dimension Tableau 2D
Nous allons d'abord définir le Réseau 2D comme dynamique. Ensuite, en utilisant le ReDim nous allons créer un tableau de trois lignes et deux colonnes. Enfin, nous allons utiliser l'instruction ReDim avec la déclaration Préserver mot-clé pour augmenter la limite supérieure du tableau à deux dimensions.
Des pas :
- Pour commencer, appuyez sur ALT+F11 pour faire apparaître le Module VBA Vous pouvez également effectuer cette opération à partir de la fenêtre Développeur onglet → sélectionner Visual Basic .
- Puis, à partir de la Insérer onglet → sélectionner Module Nous allons taper le code VBA ici.
- Ensuite, tapez le code suivant dans le fichier Module fenêtre.
Sub Redim_Preserve_2D_Array_Row() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 Range("C6:D8").Value = Our_Array End Sub
Découpage du code VBA
- Tout d'abord, nous appelons le Sous-procédure " Redim_Preserve_2D_Array_Row ".
- Ensuite, nous déclarons la variable Notre_tableau comme un tableau dynamique.
- Ensuite, nous définissons la taille du tableau. La limite inférieure est la suivante 3 la limite supérieure est 2 et tous deux partent de 1 .
- Ensuite, nous attribuons des valeurs au tableau.
- Après cela, nous introduisons les valeurs dans le C6:D8 gamme de cellules.
- Après cela, nous allons exécuter le code.
- Donc, Sauvez le site Module et appuyez sur Exécuter .
- En conséquence, il renverra les valeurs aux plages de cellules définies. Nous pouvons voir que " Rachel "est en ligne 1 et colonne 1 qui a été définie comme ( 1,1 ) dans le code VBA.
- Maintenant, nous allons redimensionner le tableau.
- Donc, ajoutez ceci au code précédent et enlevez le premier Déclaration Range.Value De plus, le code ressemble à ce que vous pouvez voir dans l'image ci-dessous.
ReDim Our_Array(1 To 3, 1 To 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Range("C6:E8").Value = Our_Array
- Ici, nous avons augmenté la limite supérieure de ( 1 A 2 ) à ( 1 A 3 ) par 1 .
- Ensuite, nous avons ajouté les valeurs au tableau.
- Maintenant, si nous exécutons ce code, nous verrons que les valeurs précédentes ne sont pas conservées. Il retournera un blanc pour les valeurs précédentes.
- Maintenant, nous pouvons corriger cela en ajoutant le Préserver le mot-clé dans le Déclaration ReDim .
- Finalement, notre code complet sera le suivant.
Option Explicit Sub Redim_Preserve_2D_Array_Row() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 ReDim Preserve Our_Array(1 To 3, 1 To 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Range("C6:E8").Value =Our_Array End Sub
- Maintenant, si nous Exécuter ce code, alors la sortie sera comme ceci. Ainsi, nous allons " Réserve ReDim " la dernière dimension d'un Réseau 2D en Excel VBA. Maintenant, la méthode suivante vous montrera comment " Réserve ReDim "et redimensionner les deux dimensions du tableau.
Lire la suite : VBA pour récupérer les valeurs uniques d'une colonne dans un tableau en Excel (3 critères)
Lectures similaires
- Comment nommer un tableau en Excel (avec des étapes faciles)
- Excel VBA pour lire un fichier CSV dans un tableau (4 exemples idéaux)
- Comment convertir une plage en tableau dans Excel VBA (3 façons)
- Excel VBA : supprimer les doublons d'un tableau (2 exemples)
2. ReDim conserve les deux dimensions d'un tableau 2D dans Excel VBA
Dans cette dernière méthode, nous allons vous montrer les étapes pour redimensionner et " Réserve ReDim " le Réseau 2D Ici, nous utiliserons l'option Transposition VBA pour redimensionner la limite inférieure du tableau. Si nous essayons de redimensionner la limite inférieure du tableau avec la première méthode, nous verrons le " Indice hors de portée "Maintenant, sans plus attendre, voyons comment nous pouvons résoudre ce problème et atteindre notre objectif.
Des pas :
- Tout d'abord, comme indiqué dans la première méthode pour faire apparaître le Module fenêtre.
- Ensuite, ajoutez les lignes de code suivantes dans le premier code.
Our_Array = Application.Transpose(Our_Array) ReDim Preserve Our_Array(1 To 3, 1 To 4) Our_Array = Application.Transpose(Our_Array) Our_Array(4, 1) = "Monica" Our_Array(4, 2) = 26 Our_Array(4, 3) = "New Mexico" Range("C6:E9").Value = Our_Array
- De plus, le code de la méthode finale ressemble à ceci.
Option Explicit Sub ReDim_Preserve_2D_Array_Both_Dimensions() Dim Our_Array() As Variant ReDim Our_Array(1 To 3, 1 To 2) Our_Array(1, 1) = "Rachel" Our_Array(2, 1) = "Ross" Our_Array(3, 1) = "Joey" Our_Array(1, 2) = 25 Our_Array(2, 2) = 26 Our_Array(3, 2) = 25 ReDim Preserve Our_Array(1 To 3, 1 To 3) Our_Array(1, 3) = "Texas" Our_Array(2, 3) = "Mississippi" Our_Array(3, 3) = "Utah" Our_Array =Application.Transpose(Our_Array) ReDim Preserve Our_Array(1 To 3, 1 To 4) Our_Array = Application.Transpose(Our_Array) Our_Array(4, 1) = "Monica" Our_Array(4, 2) = 26 Our_Array(4, 3) = "New Mexico" Range("C6:E9").Value = Our_Array End Sub
Découpage du code VBA
- Tout d'abord, nous appelons le Sous-procédure " ReDim_Preserve_2D_Array_Both_Dimensions ".
- Ensuite, le reste des codes jusqu'au Transposition VBA sont les mêmes que dans le premier code.
- Ici, nous transposons le tableau.
- Ensuite, nous augmentons la limite supérieure du tableau.
- Après cela, nous transposons à nouveau le tableau. Par conséquent, en fin de compte, la limite inférieure sera modifiée.
- Ensuite, nous entrons les valeurs du tableau redimensionné tout en préservant les anciennes données.
- Enfin, nous écrivons les valeurs dans la plage de cellules C6:E9 .
- Après ça, comme indiqué dans la première méthode , Exécuter ce code.
- Ainsi, nous pouvons visualiser comment le code préserve une Réseau 2D en utilisant le " Réserve ReDim " et le Transposition VBA fonction.
Lire la suite : VBA pour transposer un tableau dans Excel (3 méthodes)
Les choses à retenir
- Réserve ReDim ne peut pas modifier la limite inférieure du tableau. Pour ce faire, nous devons utiliser la fonction Transposition fonction.
- Nous pouvons seulement utiliser ReDim sur des tableaux dynamiques.
Conclusion
Nous vous avons montré deux façons rapides de " Réserve ReDim " a 2D tableau en Excel VBA. Si vous rencontrez des problèmes concernant ces méthodes ou si vous avez des commentaires à me faire, n'hésitez pas à les commenter ci-dessous. En outre, vous pouvez visiter notre site ExcelWIKI pour d'autres articles sur Excel. Merci de votre lecture et continuez à exceller !