Chaîne divisée VBA en tableau

Excel VBA Split String en tableau

Une chaîne est une collection de caractères réunis, lorsque ces caractères sont divisés et stockés dans une variable, cette variable devient un tableau pour ces caractères et la méthode que nous utilisons pour diviser une chaîne à créer dans un tableau consiste à utiliser la fonction SPLIT dans vba qui divise la chaîne en une chaîne unidimensionnelle.

Comme les feuilles de calcul dans VBA, nous avons également des fonctions pour gérer les valeurs de chaîne ou de texte. Nous sommes très familiers avec les opérations de chaîne comme l'extraction du premier nom, nom de famille, deuxième prénom, etc. Mais qu'en est-il de l'idée de diviser la valeur de la chaîne en tableaux dans VBA? Oui, vous l'avez bien entendu, nous pouvons diviser une phrase de chaîne en tableau en utilisant le codage VBA et dans cet article spécial, nous vous montrerons comment diviser la chaîne en un tableau dans Excel VBA.

Qu'est-ce que la chaîne divisée en un tableau?

Permettez-moi de clarifier ce premier, «String into Array» n'est rien d'autre que «différentes parties de la phrase ou de la chaîne seront divisées en plusieurs parties». Par exemple, si la phrase est «Bangalore est la capitale du Karnataka», alors chaque mot est un tableau différent.

Donc, comment diviser cette phrase dans le tableau est le sujet de cet article.

Comment convertir une chaîne divisée en un tableau dans Excel VBA?

Pour convertir la chaîne divisée en un tableau dans VBA, nous avons une fonction appelée «SPLIT». Il s'agit d'une fonction VBA qui effectue la tâche de fractionnement de la valeur de chaîne fournie en différentes parties en fonction du délimiteur fourni.

Par exemple, si la phrase est «Bangalore est la capitale du Karnataka», l'espace est le délimiteur entre chaque mot.

Voici la syntaxe de la fonction SPLIT.

  • Valeur ou expression: il s'agit de la chaîne ou de la valeur de texte que nous essayons de convertir en tableau en séparant chaque partie de la chaîne.
  • [Délimiteur]: Ce ne sont rien d'autre que les choses communes qui séparent chaque mot de la chaîne. Dans notre phrase «Bangalore est la capitale du Karnataka», chaque mot est séparé par un espace, donc notre délimiteur est l'espace ici.
  • [Limite]: La limite n'est rien d'autre que le nombre de pièces que nous voulons en conséquence. Pour un exemple dans la phrase "Bangalore est la capitale du Karnataka", nous avons sept parties si nous n'avons besoin que de trois parties, nous obtiendrons la première partie comme "Bangalore", la deuxième partie comme "est" et la troisième partie comme reste de la phrase à savoir «la capitale du Karnataka».
  • [Comparer]: Ce n'est pas utilisé 99% du temps, donc ne touchons pas à cela pour le moment.
Vous pouvez télécharger cette chaîne de fractionnement VBA en modèle Excel de tableau ici - Modèle de chaîne de division VBA en tableau Excel

Exemple 1

Ok, voyons maintenant des exemples pratiques.

Étape 1: définissez la variable VBA pour contenir la valeur de chaîne.

Code:

 Sub String_To_Array () Dim StringValue As String End Sub 

Étape 2: Pour cette variable, attribuez la chaîne «Bangalore est la capitale du Karnataka».

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale de Karnatka" End Sub 

Étape 3: Ensuite, définissez une autre variable qui peut contenir chaque partie de la valeur de chaîne ci-dessus. À ce sujet, nous devons garder à l'esprit que, puisque la phrase a plus d'un mot, nous devons définir la variable comme "Array" pour contenir plus d'une valeur.

Dans ce cas, nous avons 7 mots dans la chaîne, définissez le tableau comme suit.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale de Karnatka" Dim SingleValue () As String End Sub 

Maintenant, pour cette variable de tableau, nous utiliserons la fonction SPLIT pour diviser la chaîne en un tableau dans Excel VBA.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale du Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

L'expression est la valeur de notre chaîne, c'est-à-dire que la variable contient déjà la valeur de la chaîne, alors entrez uniquement le nom de la variable.

Le délimiteur dans cette chaîne est un caractère espace, alors fournissez le même.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale du Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub 

Désormais, quittez les autres parties de la fonction SPLIT.

La fonction SPLIT divise la valeur de la chaîne en 7 morceaux, chaque mot est séparé au détriment du caractère d'espace. Puisque nous avons déclaré la variable «SingleValue» comme tableau, nous pouvons attribuer les 7 valeurs à cette variable.

Nous pouvons écrire le code comme suit.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale du Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Exécutez le code et voyez ce que nous obtenons dans la boîte de message.

À partir de maintenant, nous pouvons voir le premier mot à savoir «Bangalore» pour montrer d'autres mots, nous pouvons écrire le code comme suit.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore est la capitale du Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (1) & vbNewLine & Single (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Maintenant, exécutez le code et voyez ce que nous obtenons dans la boîte de message.

Chaque mot a été divisé en tableaux.

Exemple # 2

Imaginez maintenant une situation de stockage de ces valeurs dans des cellules, c'est-à-dire chaque mot dans une cellule séparée. Pour cela, nous devons inclure la boucle FOR NEXT dans VBA.

Le code ci-dessous insérera chaque mot dans des cellules séparées.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore est la capitale du Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer For k = 1 To 7 Cells (1, k) .Value = SingleValue (k - 1) Suivant k End Sub 

Cela insérera chaque mot comme indiqué dans l'image ci-dessous.

Choses à retenir

  • Le tableau et les boucles sont utilisés ensemble pour rendre le code dynamique.
  • La fonction SPLIT nécessite un délimiteur commun qui sépare chaque mot de la phrase.
  • La longueur du tableau commence à zéro et non à 1.