Excel VBA: Gamme de Tableau de chaînes en 1 étape

Je sais que vous pouvez facilement prendre une plage de cellules et claque dans un Tableau de type Variant, mais je veux travailler avec un tableau de chaîne (parce que c'est unique-dimensions et prend moins de mémoire qu'un tableau de type Variant).

Est-il un moyen de convertir automatiquement une plage dans un tableau de chaînes?

Droit maintenant, je suis en utilisant une fonction qui va prendre de la gamme et de sauvegarder les valeurs dans un tableau de type variant, puis convertir le tableau de variant d'un tableau de chaînes. Il fonctionne bien , mais je suis à la recherche d'un moyen d'aller directement à partir de la gamme de tableau de chaînes. Toute aide serait grandement appréciée.

Function RangeToArray(ByVal my_range As Range) As String()

Dim vArray As Variant
Dim sArray() As String
Dim i As Long

vArray = my_range.Value
ReDim sArray(1 To UBound(vArray))

For i = 1 To UBound(vArray)
    sArray(i) = vArray(i, 1)
Next

RangeToArray = sArray()

End Function 

Mise à JOUR:
Il est à la recherche comme il n'existe aucun moyen de sauter l'étape de jeter les données dans un tableau de variables d'abord avant de le convertir en un seul dimensions tableau de chaînes. Une honte si c'est vrai (même si il ne prend pas beaucoup d'effort, j'aime ultra-optimiser donc, j'espérais qu'il y avait un moyen de sauter cette étape). Je vais fermer la question dans quelques jours, si aucune solution ne se présente. Merci pour les commentaires les gars!

UPDATE2:
Réponse va à Simon qui l'a mis dans un grand effort (donc tout le monde) et utlimately souligné, il est en effet impossible d'aller de l'aire de répartition de tableau de chaîne d'un seul coup. Merci à chacun de vous.

  • Il y a direct à la mémoire routines de manipulation, vous pouvez accéder en VBA pour créer une forme très efficace de la fonction de convertir le tableau. Je n'ai pas le temps et les compétences d'un fouet, bien que j'ai quelques mappage de la mémoire de code dans mon application principale, de sorte qu'il est là-bas, et vous permettra de faire un extrêmement efficace de la matrice de la copie du programme.
  • Le lien pour une réponse que j'ai donné avec certaines des fonctions de la mémoire c'est de here.
  • Bien que je n'étais pas en mesure d'appliquer l'info dans vos liens pour ce problème particulier, il était un bon à lire et intéressant. Merci pour le lien.
InformationsquelleAutor aevanko | 2011-07-21