Comment puis-je configurer un “tableau en escalier” en VBA?
J'ai une salle de classe pleine d'enfants, qui ont de la liste de leurs jouets préférés pour une affectation. Certains enfants seulement la liste 1 jouet alors que d'autres la liste des plus.
Comment puis-je créer un tableau en escalier telle que les Enfants(x)(y)...où x est le nombre d'enfants dans ma classe, et y est la liste des jouets qu'ils la liste de leurs favoris?
- Voir ma réponse à Excel Macro de chargement de Matrices qui explique sur les tableaux irréguliers.
Vous devez vous connecter pour publier un commentaire.
"Tableau en escalier" est de l'argot pour tableau de tableaux. VBA
Variant
type de données peut contenir à peu près tout*, y compris un tableau. Afin de vous faire un tableau de typeVariant
, et d'attribuer à chacun de ses éléments d'un tableau de longueur arbitraire (c'est à dire pas tous d'entre eux ont même longueur).Voici un exemple:
* Une exception notable de types définis par l'utilisateur. Les variantes ne peut pas contenir de ces.
thisStudentsToys
, est-il essentiellement un nouvel emplacement de mémoire créé? Je pensais que les tableaux en VBA sont des références. Je veux juste vérifier: Sur la deuxième itération de la boucle for, la réécriture de l'thisStudentsToys
tableau ne modifie pas le premier indice detoys
? S'il vous plaît laissez-moi savoir si je ne fais pas moi-même clair. MerciVous pouvez utiliser une collection de collections
Les sorties qui
Kid 4, Toy 2 = Kid4Toy2
Jean-François a souligné que chaque élément peut être un tableau de longueur variable. Je voudrais ajouter que chaque élément peut également être d'autres types et n'a pas besoin d'être des tableaux. Par exemple:
Les différents éléments d'enfant peut alors être référencé en fonction du type implicites de chacun:
un(2)(1) = 3
un(3)(1) = "a"
un(5)(2,1) = tout ce qui est dans la cellule A2.
Vous pouvez également concaténer la liste des jouets par exemple un tuyau de la chaîne séparée, puis utiliser Split pour activer la chaîne dans un tableau en cas de besoin:
Vous n'avez pas nécessairement besoin d'un tableau en escalier pour gérer votre scénario comme un tableau 2D (r, c) fera aussi l'affaire. Une ligne pour chaque enfant et une colonne pour chacun d'eux. Les dimensions du tableau sera (nombre d'enfants, MAX nombre de cadeaux) et il va juste dire que certains slots sera vide ou 0 (en fonction de votre type de données). Mais, au moins, de cette façon, vous n'aurez pas besoin de redimensionner le tableau chaque fois que vous ajoutez un cadeau pour un enfant.