lorsque vous travaillez avec VBA dans Excel, vous pouvez avoir besoin de diviser une chaîne en différentes parties en fonction d’un délimiteur.
par exemple, si vous avez une adresse, vous pouvez utiliser la fonction VBA Split pour obtenir différentes parties de l’adresse séparées par une virgule (Qui serait le délimiteur dans ce cas).
SPLIT est une fonction de chaîne intégrée dans Excel VBA que vous pouvez utiliser pour diviser une chaîne de texte en fonction du délimiteur.,
Ce Tutoriel Couvre:
VBA Excel Fonction SPLIT – Syntaxe
Split ( Expression, , , )
- Expression: C’est la chaîne que vous souhaitez diviser basé sur le séparateur. Par exemple, dans le cas de l’exemple d’adresse, l’adresse entière serait « l’expression ». Dans le cas où il s’agit d’une chaîne de longueur nulle ( » ” ), la fonction SPLIT retournerait un tableau vide.
- Delimiter: ceci est un argument optionnel. C’est le délimiteur qui est utilisé pour diviser l’argument ‘Expression’., Dans le cas de notre exemple d’adresse, une virgule est un séparateur qui permet de séparer l’adresse en différentes parties. Si vous ne spécifiez pas cet argument, un caractère d’espace est considéré comme le délimiteur par défaut. Dans le cas où vous donnez une chaîne de longueur nulle (« ”), la chaîne ‘Expression’ entière est renvoyée par la fonction.
- Limite: C’est un argument facultatif. Ici, vous spécifiez le nombre total de sous-chaînes que vous souhaitez renvoyer. Par exemple, si vous souhaitez uniquement renvoyer les trois premières sous-chaînes de l’argument ‘Expression’, ce sera 3., Si vous ne spécifiez pas cet argument, la valeur par défaut est -1, qui renvoie toutes les sous-chaînes.
- comparer: ceci est un argument optionnel. Ici, vous spécifiez le type de comparaison que vous souhaitez que la fonction SPLIT effectue lors de l’évaluation des sous-chaînes. Les options suivantes sont disponibles:
- lorsque Compare vaut 0: Il s’agit d’une comparaison binaire. Cela signifie que si votre délimiteur est une chaîne de texte (disons ABC), cela serait sensible à la casse. « ABC » ne serait pas égal à « abc ».
- lorsque Compare vaut 1: Il s’agit d’une comparaison de texte., Cela signifie que si votre délimiteur est une chaîne de texte (disons ABC), alors même si vous avez ‘abc’ dans la chaîne ‘Expression’, il serait considéré comme un délimiteur.
Maintenant que nous avons couvert les bases de la fonction de répartition, nous allons voir quelques exemples pratiques.
exemple 1 – diviser les mots dans une phrase
supposons que j’ai le texte – « le renard brun rapide saute par-dessus le chien paresseux”.
je peux utiliser la fonction SPLIT pour obtenir chaque mot de cette phrase en tant qu’élément séparé dans un tableau.,
le code ci-dessous serait à ceci:
Sub SplitWords()Dim TextStrng As StringDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result() = Split(TextStrng)End Sub
bien que le code ne fasse rien d’utile, il vous aidera à comprendre ce que fait la fonction Split dans VBA.
la fonction Split divise la chaîne de texte et affecte chaque mot au tableau de résultats.
Donc dans ce cas:
- Résultat(0) stocke la valeur « L”
- Résultat(1) stocke la valeur « Rapide”
- Résultat(2) stocke la valeur « Brun” et ainsi de suite.
dans cet exemple, nous avons seulement spécifié le premier argument – qui est le texte à diviser., Comme aucun délimiteur n’a été spécifié, il prend space character comme délimiteur par défaut.
Remarque importante:
- la fonction VBA SPLIT renvoie un tableau qui commence à partir de la base 0.
- lorsque le résultat de la fonction SPLIT est affecté à un tableau, ce tableau doit être déclaré en tant que type de données String. Si vous le déclarez comme un type de données Variant, il affichera une erreur de non-concordance de type). Dans l’exemple ci-dessus, notez que J’ai déclaré Result() en tant que type de données de chaîne.,
Exemple 2 – Compter le Nombre de Mots dans une Phrase
Vous pouvez utiliser la fonction SPLIT pour obtenir le nombre total de mots dans une phrase. L’astuce ici est de compter le nombre d’éléments dans le tableau que vous obtenez lorsque vous divisez le texte.
le code ci-dessous afficherait une boîte de message avec le nombre de mots:
Sub WordCount()Dim TextStrng As StringDim WordCount As IntegerDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result = Split(TextStrng)WordCount = UBound(Result()) + 1MsgBox "The Word Count is " & WordCountEnd Sub
dans ce cas, la fonction UBound nous indique la limite supérieure du tableau (c’est-à-dire le nombre maximum d’éléments du tableau)., Puisque la base du tableau est 0, 1 est ajouté pour obtenir le nombre total de mots.
Vous pouvez utiliser un code similaire pour créer une fonction personnalisée dans VBA qui prendra le texte en entrée et retournera le nombre de mots.
le code ci-dessous va créer cette fonction:
Une fois créé, vous pouvez utiliser la fonction WordCount comme n’importe quelle autre fonction régulière.
Cette fonction gère également les espaces de début, de fin et doubles entre les mots. Cela a été rendu possible en utilisant la fonction TRIM dans le code VBA.,
Si vous souhaitez en savoir plus sur le fonctionnement de cette formule pour compter le nombre de mots dans une phrase ou si vous souhaitez en savoir plus sur une formule non VBA pour obtenir le nombre de mots, consultez ce tutoriel.
exemple 3 – Utilisation d’un délimiteur autre que L’Espace
dans les deux exemples précédents, nous n’avons utilisé qu’un seul argument dans la fonction SPLIT, et les autres étaient les arguments par défaut.
lorsque vous utilisez un autre délimiteur, vous devez le spécifier dans la formule fractionnée.,
dans le code ci-dessous, la fonction SPLIT renvoie un tableau basé sur une virgule comme délimiteur, puis affiche un message avec chaque mot dans une ligne séparée.
dans le code ci-dessus, j’ai utilisé la boucle For Next pour parcourir chaque élément du tableau ‘Result’ l’affecter à la variable ‘DisplayText’.
exemple 4 – diviser une adresse en trois parties
avec la fonction SPLIT, vous pouvez spécifier le nombre de splits que vous souhaitez obtenir. Par exemple, si Je ne spécifie rien, chaque instance du délimiteur serait utilisée pour diviser la chaîne.,
Mais si je spécifie 3 comme limite, alors la chaîne sera divisée en trois parties seulement.
Par exemple, si j’ai l’adresse suivante:
2703 Winifred Way, Indianapolis, Indiana, 46204
je peux utiliser la fonction Split en VBA pour diviser cette adresse en trois parties.
Il divise les deux premiers basée sur la virgule de séparation et la partie restante devient le troisième élément du tableau.,
Le code ci-dessous permettrait d’afficher l’adresse dans les trois lignes différentes dans une boîte de message:
l’Une des utilisations pratiques de la cela pourrait être quand vous voulez diviser une seule ligne de l’adresse dans le format indiqué dans la boîte de message. Ensuite, vous pouvez créer une fonction personnalisée qui renvoie l’adresse divisé en trois parties (chaque partie dans une nouvelle ligne).
Le code suivant pourrait faire ceci:
une Fois que vous avez ce code dans le module, vous pouvez utiliser la fonction (ThreePartAddress) dans le classeur comme tout autre fonction Excel.,
Cette fonction prend un argument – la référence de la cellule qui se trouve à l’adresse.
notez que pour que l’adresse résultante apparaisse sur trois lignes différentes, vous devez appliquer le format de texte wrap aux cellules (c’est dans L’onglet Accueil du groupe alignement). Si le format’ Wrap Text ‘ n’est pas activé, vous verrez l’adresse entière comme une seule ligne.
exemple 5 – Obtenez le nom de la ville à partir de l’adresse
avec la fonction Split dans VBA, vous pouvez spécifier quelle partie du tableau résultant vous souhaitez utiliser.,
Par exemple, supposons que je suis à fractionner l’adresse suivante basée sur la virgule comme délimiteur:
2703 Winifred Way, Indianapolis, Indiana, 46204
Le tableau devrait ressembler à quelque chose comme indiqué ci-dessous:
{"2703 Winifred Way", "Indianapolis", "Indiana", "46204"}
Puisque c’est un tableau, je peux choisir d’afficher ou de retourner une partie spécifique de ce tableau.
ci-dessous est un code pour une fonction personnalisée, où vous pouvez spécifier un nombre et il retournera cet élément du tableau. Par exemple, si je veux le nom de l’état, je peux spécifier 3 (comme c’est le troisième élément du tableau).,
La fonction prend deux arguments, la référence de la cellule qui a l’adresse et le numéro d’élément que vous souhaitez retourner. La fonction Split divise les éléments d’adresse et les affecte à la variable de résultat.
ensuite, il renvoie le numéro d’élément que vous avez spécifié comme deuxième argument. Notez que puisque la base est 0, ElementNumber – 1 est utilisé pour renvoyer la partie correcte de l’adresse.
Si vous voulez le nom de la ville, vous pouvez utiliser 2 comme deuxième argument. Si vous utilisez un nombre supérieur au nombre total d’éléments, il renverra la valeur#! erreur.
Vous pouvez simplifier le code comme indiqué ci-dessous:
Dans le code ci-dessus, au lieu d’utiliser la variable Résultat, elle renvoie uniquement l’élément spécifié en nombre.
Donc si vous avez Split(« bonjour”)(0), il suffit de retourner le premier élément, qui est « Bon”.,
de même, dans le code ci-dessus, il ne renvoie que le numéro d’élément spécifié.
Vous Pouvez Également Comme Suit Excel Tutoriels:
- VBA Excel Fonction InStr – Expliqué avec des Exemples.
- comment trier les données dans Excel à l’aide de VBA (un Guide étape par étape).
- 7 choses étonnantes que Excel Text to Columns peut faire pour vous.
- Comment Obtenir le nombre de mots dans Excel.
- fonction de TRIM VBA.