Cela devrait fonctionner en fonction d'un autre poste de débordement de pile, mais ce n'est pas le cas:
Dim arrWsNames As String() = {"Value1", "Value2"}
Quelqu'un peut-il me faire savoir ce qui ne va pas?
Essaye ça:
Dim myarray As Variant
myarray = Array("Cat", "Dog", "Rabbit")
Dans le cas spécifique d'un tableau String, vous pouvez initialiser le tableau à l'aide de Split Function car il retourne un tableau String plutôt qu'un tableau Variant:
Dim arrWsNames() As String
arrWsNames = Split("Value1,Value2,Value3", ",")
Cela vous permet d'éviter d'utiliser le type de données Variant et de conserver le type souhaité pour arrWsNames.
Le problème ici est que la longueur de votre tableau n'est pas définie et cela confond VBA si le tableau est explicitement défini en tant que chaîne. Les variantes, cependant, semblent être en mesure de redimensionner à volonté (car elles accumulent beaucoup de mémoire et les gens les évitent généralement pour diverses raisons).
Le code suivant fonctionne très bien, mais il est un peu manuel comparé à d'autres langages:
Dim SomeArray(3) As String
SomeArray(0) = "Zero"
SomeArray(1) = "One"
SomeArray(2) = "Two"
SomeArray(3) = "Three"
Dim myStringArray() As String
*code*
redim myStringArray(size_of_your_array)
Ensuite, vous pouvez faire quelque chose de statique comme ceci:
myStringArray = { item_1, item_2, ... }
Ou quelque chose d'itératif comme ceci:
Dim x
For x = 0 To size_of_your_array
myStringArray(x) = data_source(x).Name
Next x
Public Function _
CreateTextArrayFromSourceTexts(ParamArray SourceTexts() As Variant) As String()
ReDim TargetTextArray(0 To UBound(SourceTexts)) As String
For SourceTextsCellNumber = 0 To UBound(SourceTexts)
TargetTextArray(SourceTextsCellNumber) = SourceTexts(SourceTextsCellNumber)
Next SourceTextsCellNumber
CreateTextArrayFromSourceTexts = TargetTextArray
End Function
exemple:
Dim TT() As String
TT = CreateTextArrayFromSourceTexts("hi", "bye", "hi", "bcd", "bYe")
résultat:
TT(0)="hi"
TT(1)="bye"
TT(2)="hi"
TT(3)="bcd"
TT(4)="bYe"
prendre plaisir
edit: j’ai supprimé la fonctionnalité de suppression de duplicatedtexts et rendu le code plus petit et plus facile à utiliser.