Tableau multidimensionnel VBA (tableaux 2D)

Ce didacticiel abordera les tableaux 2D et multidimensionnels en VBA.

Tableau multidimensionnel (tableaux 2D)

Les tableaux multidimensionnels sont des tableaux qui contiennent plus d'une dimension, généralement deux ou trois dimensions, mais les tableaux peuvent avoir jusqu'à 32 dimensions.

Déclarer un tableau 2D

Pour créer un tableau avec plusieurs dimensions, utilisez des virgules pour définir chaque dimension distincte :

1 Dim intArr(2,3) en tant qu'entier

Remplissage d'un tableau 2D

Le code ci-dessous remplira un tableau 2D, puis remplira les lignes et les colonnes d'une feuille de calcul avec les valeurs du tableau.

1234567891011121314151617181920212223242526 Sous-peupler2D()'déclare le tableau 2DDim intA(2, 3) en tant qu'entier'déclarer des variablesDim rw en tant qu'entierDim col As Integer'remplir le tableauintA(0, 0) = 45intA(0, 1) = 50intA(0, 2) = 55intA(0, 3) = 60intA(1, 0) = 65intA(1, 1) = 70intA(1, 2) = 75intA(1, 3) = 80intA(2, 0) = 85intA(2, 1) = 90intA(2, 2) = 95intA(2, 3) = 100'boucler dans le tableau et remplir ExcelPour rw = 0 à 2Pour col = 0 à 3Cells(rw + 1, col + 1).Valeur = intA(rw, col)Col suivantRw suivanteFin du sous-marin

Votre feuille de calcul Excel doit ensuite être remplie comme suit.

Remplir un tableau 2D à partir de données Excel

Le code ci-dessous remplira un tableau 2D à partir d'une feuille de calcul Excel, puis remplira une autre feuille avec les données.

1234567891011121314151617181920212223242526 Sous-peupler2D()'Déclarer les feuilles de travailDim ws_Source en tant que feuille de calculDim ws_Destination en tant que feuille de calcul'Déclarer le tableauDim wsData (10, 2) en tant que variante'Déclarer les variablesDim rw comme entierDim col As Integer'se référer à la fiche sourceDéfinir ws_Source = Worksheets("Sheet1")'obtenir les informations de la feuille source et remplir le tableauPour rw = LBound(wsData, 1) À UBound(wsData, 1)Pour col = LBound(wsData, 2) À UBound(wsData, 2)wsData(rw, col) = ws_Source.Range("A2").Offset(rw, col).ValueCol suivantRw suivante'se référer à la fiche de destinationDéfinir ws_Destination = Worksheets("Sheet2")' remplir la feuille de destination à partir du tableauPour rw = LBound(wsData, 1) À UBound(wsData, 1)Pour col = LBound(wsData, 2) À UBound(wsData, 2)ws_Destination.Range("A1").Offset(rw,col).Value = wsData(rw,col)Col suivantRw suivanteFin du sous-marin

Redimensionnement à l'aide de ReDim et Re-Dim Preserve

Vous pouvez redimensionner un tableau en utilisant ReDim.

1234567891011121314151617 Sous-redimensionner2D()'déclare le tableauDim varArray() en tant que variante'déclare la taille du tableauReDim varArray(1, 2)varArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"varArray(0, 2) = "Jane Eyre"varArray(1, 0) = "Comptable"varArray(1, 1) = "Secrétaire"varArray(1, 2) = "Docteur"'redéclarer la taille du tableauReDim varArray(0, 1)'repeupler le tableauvarArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"Fin du sous-marin

Lorsque vous redéclarez le tableau, vous perdrez toutes les données précédemment détenues dans le tableau, sauf si vous utilisez le Déclaration de préservation ReDim.

12345678910111213141516 Sous-redimensionner2D()'déclare le tableau Dim varArray() comme Variant'déclare la taille du tableauReDim varArray(1, 2)varArray(0, 0) = "Mel Smith"varArray(0, 1) = "Fred Buckle"varArray(0, 2) = "Jane Eyre"varArray(1, 0) = "Comptable"varArray(1, 1) = "Secrétaire"varArray(1, 2) = "Docteur"'redéclarer la taille du tableauReDim Preverve varArray(1, 3)'remplir le tableau avec des valeurs supplémentairesvarArray(0, 3) = "Rob Barnes"varArray(1, 3) = "Plombier"Fin du sous-marin

Vous ne pouvez redimensionner la dernière dimension d'un tableau que si vous souhaitez conserver les données d'origine dans le tableau avec Re-Dim Conserver.

Lorsque vous cliquez sur déboguer, l'erreur sera mise en surbrillance, indiquant que la première dimension du tableau n'est pas la même que la première dimension lorsque la taille du tableau a été déclarée à l'origine.

wave wave wave wave wave