VBA ReDim - Gérer les baies dynamiques à l'aide de VBA ReDim Preserve

Table des matières

Déclaration Excel VBA ReDim

L' instruction VBA Redim est similaire à l'instruction dim, mais la différence est qu'elle est utilisée pour stocker ou allouer plus d'espace de stockage ou pour réduire l'espace de stockage qu'une variable ou un tableau a avec elle, maintenant il y a deux aspects importants utilisés avec l'instruction Preserve, si préserver est utilisé avec cette instruction, il crée un nouveau tableau avec une taille différente et si préserver n'est pas utilisé avec cette instruction, alors il change simplement la taille du tableau de la variable courante.

Les tableaux sont une partie importante du codage VBA. En utilisant des tableaux, nous pouvons stocker plus d'une valeur dans la même variable que nous avons définie. Comme la façon dont nous déclarons la variable en utilisant le mot «Dim», nous devons déclarer le nom du tableau en utilisant également «Dim».

Afin de déclarer le nom du tableau, nous devons d'abord identifier le type de tableau que nous allons définir. Dans les tableaux, nous avons 5 types.

  1. Réseau statique
  2. Réseau dynamique
  3. Réseau unidimensionnel
  4. Réseau bidimensionnel
  5. Réseau multidimensionnel

Dans le tableau statique d'Excel, nous déciderons de la valeur inférieure et de la valeur supérieure du tableau bien à l'avance lors de la déclaration de la variable. Par exemple, regardez l'exemple ci-dessous.

Code:

Sub ReDim_Example1 () Dim MyArray (1 To 5) As String End Sub

Ici MyArray est le nom du tableau, qui peut contenir la valeur de 1 à 5. MyArray peut contenir 5 résultats différents comme celui ci-dessous.

Code:

Sub ReDim_Example1 () Dim MyArray (1 To 5) As String MyArray (1) = "Hi" MyArray (2) = "Good" MyArray (3) = "Morning" MyArray (4) = "Avoir un" MyArray (5) = "Nice Day" End Sub

Tableau dynamique avec déclaration ReDim

Mais dans le tableau dynamique, ce n'est pas le cas. Nous ne déciderons pas de la valeur inférieure et de la valeur supérieure bien à l'avance; au contraire, nous définissons simplement le nom du tableau et attribuons le type de données.

Sub ReDim_Example1 () Dim MyArray () As String End Sub

Afin de rendre le nom du tableau dynamique, nous devons d'abord le déclarer avec le mot «Dim», mais ne décidez pas de la taille du tableau bien à l'avance. Nous nommons simplement un tableau avec des valeurs vides entre parenthèses (). Lorsque le tableau n'inclut pas la taille, il est traité comme un tableau dynamique.

Dim MyArray () As String

Au moment où vous mentionnez la taille du tableau entre parenthèses, il devient un tableau statique. Dim MyArray (1 to 5) As String

Dans le tableau dynamique, nous redimensionnons toujours la taille du tableau en utilisant le mot «ReDim» dans la ligne suivante du code.

ReDim MyArray (1 à 6) sous forme de chaîne

Toute valeur stockée dans le nom du tableau dans les étapes précédentes, c'est-à-dire en utilisant l'instruction «Dim», est nulle, et la taille que nous avons déclarée en utilisant «ReDim» devient la nouvelle taille du tableau.

Exemples d'utilisation de l'instruction VBA Redim

Exemple 1

Jetez un œil à l'exemple de l'utilisation pratique de l'instruction «ReDim». Suivez les étapes ci-dessous pour appliquer «ReDim».

Étape 1: Créez d'abord un nom de macro.

Étape 2: Déclarez un nom de tableau sous forme de chaîne.

Code:

Sub ReDim_Example1 () Dim MyArray () As String End Sub

Étape 3: Utilisez maintenant le mot «Redim» et attribuez la taille du tableau.

Code:

Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) End Sub

Étape 4: Alors maintenant, le nom du tableau «MyArray» peut contenir jusqu'à 3 valeurs ici. Attribuez la valeur à ces 3 tableaux comme ci-dessous.

Code:

Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" End Sub

Ainsi, le premier tableau est égal au mot «Welcome», le deuxième tableau est égal au mot «to» et le troisième tableau est égal au mot «VBA».

Étape 5: stockez maintenant ces valeurs de tableau dans des cellules.

Code:

Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" Range ("A1"). Value = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) End Sub

Étape 6: Si vous exécutez ce code, nous devrions avoir ces valeurs dans les cellules A1, B1 et C1, respectivement.

Exemple # 2 - Redimensionner la taille du tableau tout en se souvenant des anciennes valeurs.

Une fois les valeurs attribuées au nom du tableau, nous pouvons également redimensionner à tout moment de la procédure en utilisant le mot «ReDim Preserve».

Assume you have already declared an array name and assigned values to those array name like the below one.

Now you would like to increase the array length by 2, i.e., 5. In this case, we can use the word VBA “ReDim Preserve” to resize the array length to remember the old values as well.

Code:

Sub ReDim_Example2() Dim MyArray() As String ReDim MyArray(3) MyArray(1) = "Welcome" MyArray(2) = "to" MyArray(3) = "VBA" ReDim Preserve MyArray(4) MyArray(4) = "Character 1" Range("A1").Value = MyArray(1) Range("B1").Value = MyArray(2) Range("C1").Value = MyArray(3) Range("D1").Value = MyArray(4) End Sub

Now we can assign two more values to the array.

Code:

Sub ReDim_Example2() Dim MyArray() As String ReDim MyArray(3) MyArray(1) = "Welcome" MyArray(2) = "to" MyArray(3) = "VBA" ReDim Preserve MyArray(4) MyArray(4) = "Character 1" Range("A1").Value = MyArray(1) Range("B1").Value = MyArray(2) Range("C1").Value = MyArray(3) Range("D1").Value = MyArray(4) End Sub

Now store these values in cells.

Code:

Sub ReDim_Example2() Dim MyArray() As String ReDim MyArray(3) MyArray(1) = "Welcome" MyArray(2) = "to" MyArray(3) = "VBA" ReDim Preserve MyArray(4) MyArray(4) = "Character 1" Range("A1").Value = MyArray(1) Range("B1").Value = MyArray(2) Range("C1").Value = MyArray(3) Range("D1").Value = MyArray(4) End Sub

Now run the macro and see what happens.

So we got the new word in the D1 cell.

La raison pour laquelle nous devons utiliser le mot «préserver» parce que le tableau doit se souvenir des anciennes valeurs du tableau dans la procédure.

Au moment où vous ignorez le mot «préserver», il ne se souviendra pas des anciennes valeurs.

Choses à retenir ici

  • ReDim ne peut contenir que la dernière valeur du tableau, pas les nombreuses valeurs. Par exemple, nous ne pouvons pas utiliser ce code «ReDim Preserve MyArray (4 to 5)». Cela jettera l'erreur.
  • Nous ne pouvons pas ReDim des tableaux statiques. Au moment où vous affectez la taille du tableau entre parenthèses, il devient un tableau statique.
  • En utilisant ReDim, nous ne pouvons pas changer le type de données. Le tableau peut contenir n'importe quel type de données que nous avons attribué lors de la déclaration du tableau.

Articles intéressants...