Renvoyer plusieurs valeurs à partir d'une fonction, sous-type?
Alors je me demandais, comment puis-je retourner plusieurs valeurs à partir d'une fonction, sous-type en VBA?
J'ai ce principal sous lequel est censé recueillir des données à partir de plusieurs fonctions, mais une fonction ne peut retourner qu'une seule valeur, il me semble. Alors, comment puis-je retourner plusieurs de celles d'un sous?
Vous devez vous connecter pour publier un commentaire.
Vous pourriez vouloir repenser la structure de votre application, si vous voulez vraiment, vraiment une méthode pour renvoyer plusieurs valeurs.
Soit de casser des choses de part et d'autre des méthodes distinctes de retour de valeurs distinctes, ou trouver une logique de regroupement et de construire un objet destiné à contenir des données qui peuvent à leur tour être retournés.
Vous pourriez essayer de retourner un VBA Collection.
Aussi longtemps que vous le traiter avec une paire de valeurs, comme la "Version=1.31", vous pouvez stocker l'identificateur de clé ("Version") et la valeur réelle (1.31) comme l'élément lui-même.
Accès à l'valeurs après c'est un jeu d'enfant:
T-il un sens?
Idées :
Vous pouvez également utiliser un tableau de type variant comme le résultat de retour pour renvoyer une séquence de valeurs arbitraires:
Laid et bug erreurs parce que votre interlocuteur a besoin de savoir ce qui est retourné à utiliser le résultat, mais de temps en temps néanmoins utile.
Une fonction renvoie une valeur, mais il peut "sortie" un certain nombre de valeurs. Un exemple de code:
Pas élégant, mais si vous n'utilisez pas votre méthode overlappingly vous pouvez également utiliser des variables globales, définies par la déclaration Publique au début de votre code, avant les Subs.
Vous devez être prudent, cependant, une fois que vous modifiez une valeur publique, elle aura lieu tout au long de votre code dans tous les sous-marins et des Fonctions.
vous pouvez retourner 2 ou plusieurs valeurs pour une fonction en VBA ou de tout autre visuel des trucs de base, mais vous devez utiliser le pointeur de la méthode appelée Byref. Voir mon exemple ci-dessous. Je vais faire une fonction pour ajouter et soustraire 2 valeurs dites 5,6
J'ai toujours l'approche de retourner plus d'un résultat à partir d'une fonction en retournant toujours un
ArrayList
. À l'aide d'unArrayList
je peux retourner un seul élément, composé de plusieurs valeurs, le mélange entreStrings
etIntegers
.Une fois que j'ai le
ArrayList
retourné dans mes sous, j'ai simplement utiliserArrayList.Item(i).ToString
oùi
est l'indice de la valeur que je veux le retour de laArrayList
Un exemple:
Puis d'appeler la Fonction comme ceci:
vous pouvez vous connecter à toutes les données dont vous avez besoin à partir du fichier d'une seule chaîne, et dans la feuille excel séparé du texte de la colonne.
voici un exemple que j'ai fait pour une même question, de profiter de: