Comment Créer Subarray Efficacement en VBA?
Dans mon programme VBA, j'ai un grand tableau de données, où j'ai besoin d'être constamment à l'utilisation de ses sous-ensembles.
Ma méthode est la suivante:
Redim subArr(rowBegin to rowEnd)
For r = rowBegin to rowEnd
subArr(r) = bigArr(r)
Next r
Est-il un moyen plus efficace pour faire référence à ce genre de sous-ensembles s'il vous plaît? Merci...
- Quel est ton code complet?
- Je ne fait qu'extraire la partie la plus pertinente de mes codes ici. Les autres codes ne sont pas réellement utiles pour cette question.
Vous devez vous connecter pour publier un commentaire.
Travailler avec des tableaux est incroyablement rapide, donc ce sera probablement donner aucun avantage apparent - althouh je peux comprendre comment il peut faire appel à partir d'un codage de sens que boucle pour remplir un petit tableau
Donné que vous travaillez avec un seul élément de tableau vous pouvez:
Join
le grand tableau avec un délimiteur dans une seule chaîneSplit
le grand tableau par le "marqueur" de la chaîne, puis séparer la chaîne réduit en un petit tableau avec le délimiteurLe code ci-dessous décharges, les nombres de 1 à 100 dans un tableau, et répartit ensuite comme ci-dessus pour retirer les 10 premiers enregistrements
Join
exécute sa propre de la boucle interne. J'avais pensé le code ci-dessus serait briser même ou à peu près avec la variante de la boucle de ré-écrire, au lieu de 4 à 5 fois plus lent.Réponse courte: non, pas d'
Pas tout à fait aussi courte réponse: puisque vous êtes la création d'un sous-tableau avec les non 0/1 limites, pourquoi ne pas simplement passer une référence pour le tableau d'origine et les limites?
BTW: une bonne ressource pour VBA tableau est CPearson du site http://www.cpearson.com/excel/vbaarrays.htm