Sous-chaîne VBA

Sous-chaîne Excel VBA

SubString est une partie de la chaîne ou de la partie ou le caractère de la chaîne est appelé «SubString». Il existe trois types de fonction de sous-chaîne dans VBA LEFT, RIGHT et MID, ils sont similaires aux sous-chaînes de feuille de calcul dans Excel.

Une chaîne n'est rien d'autre qu'une série de caractères et les caractères peuvent être des alphabets, des nombres, des caractères spéciaux et également combiner tous ces éléments.

Souvent, dans Excel lorsque nous travaillons avec des données qui sont la chaîne dont nous avons besoin pour obtenir uniquement la partie de la chaîne pour faciliter notre objectif. Nous n'avons peut-être pas besoin de la chaîne complète à utiliser, mais nous n'avons besoin que de la partie de la chaîne pour notre utilisation. Par exemple, si vous avez le nom «Sachin Tendulkar», vous n'aurez besoin que de la première partie du nom, c'est-à-dire uniquement «Sachin». Ceci est appelé sous-chaîne de la chaîne dans Excel VBA. Pour traiter ces chaînes, nous avons des fonctions intégrées sous la fonction TEXTE dans la catégorie Excel.

Dans cet article, nous expliquerons comment obtenir la sous-chaîne de la chaîne complète dans VBA.

Comment utiliser les fonctions SubString dans VBA?

Pour extraire la sous-chaîne de la chaîne, nous avons certaines des fonctions de texte intégrées et certaines des fonctions importantes sont LEFT, RIGHT, INSTR et MID dans Excel. La fonction Instr servira de fonction de support pour les trois autres fonctions.

Nous verrons comment utiliser ces fonctions pour extraire pratiquement les sous-chaînes. Lisez les exemples ci-dessous pour les comprendre.

Vous pouvez télécharger ce modèle Excel de sous-chaîne VBA ici - Modèle Excel de sous-chaîne VBA

Exemple # 1 - Utilisation de la fonction gauche

Si vous avez le nom complet comme «Sachin Tendulkar» et que vous n'avez besoin que du prénom à extraire comme sous-chaîne, utilisez le code suivant pour obtenir la même chose.

Étape 1: Créez un nom de macro et définissez deux variables sous forme de chaîne.

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String End Sub 

Étape 2: Attribuez maintenant le nom «Sachin Tendulkar» à la variable FullName .

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub 

Étape 3: Maintenant, la variable FullName contient la valeur «Sachin Tendulkar». Nous devons maintenant extraire la sous-chaîne VBA excel du prénom du nom complet. Alors, affectez la valeur de la variable FirstName via la fonction LEFT.

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (End Sub 

Étape 4: Le premier argument de la fonction VBA LEFT est String, c'est-à-dire la valeur complète ou la chaîne complète. Dans cet exemple, notre valeur ou chaîne complète est «Sachin Tendulkar» qui est affectée à la variable FullName.

Fournissez donc la variable FullName comme argument.

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left End Sub 

Étape 5: L'  argument suivant est le nombre de caractères dont nous avons besoin dans la chaîne que nous avons fournie, donc dans ce cas, nous avons besoin du prénom « Sachin » donc totalement nous avons besoin de 6 caractères du côté gauche.

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub 

Étape 6: affichez maintenant le résultat dans une boîte de message dans VBA.

Code:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub 

Étape 7: exécutez la macro voir le prénom comme sous-chaîne dans la boîte de message.

Exemple # 2 - Obtenir la sous-chaîne à partir de la droite

Tout comme la façon dont nous avons extrait la sous-chaîne de la gauche, nous pouvons également extraire de la droite. Prenons le même nom comme exemple.

Étape 1: définissez deux variables comme chaîne.

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String End Sub 

Étape 2: Comme d'habitude, attribuez la valeur à la variable FullName comme «Sachin Tendulkar»

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" End Sub 

Étape 3: Maintenant, pour la variable LastName, attribuez la valeur via la fonction Excel RIGHT.

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (End Sub 

Étape 4: String est notre FullName, alors fournissez la variable.

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub 

Étape 5: La longueur est le nombre de caractères dont nous avons besoin du côté droit, nous avons besoin de 9 caractères du côté droit.

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub 

Étape 6: affichez cette valeur dans la boîte de message .

Code:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName End Sub 

Étape 7: Exécutez la macro, nous verrons le nom de famille dans la boîte de message.

Exemple # 3 - Utilisation de la fonction Instr

Dans les exemples ci-dessus, nous n'avions qu'un seul nom et nous avons directement fourni le nombre de caractères dont nous avons besoin de gauche à droite. Mais dans le cas de nombreux noms, les caractères du prénom et du nom de famille ne sont pas les mêmes, cela différera d'un nom à l'autre. Dans ces cas, nous ne pouvons pas fournir directement le nombre de caractères pour pouvoir utiliser la fonction Instr.

La fonction Instr renverra la position de caractère fournie dans la chaîne. Pour un exemple, regardez le code ci-dessous.

Code:

 Sub SubString_Example3 () Dim Position As String Position = InStr (1, "Sachin", "a") MsgBox Position End Sub 

InStr(1, “Sachin”, “a”) this will identify the position of the letter “a” as the first appearance in the string “Sachin”. In this case letter “a” is in the second position. So we will get 2 as the result in the message box.

Like this, we can use the Instr function to find the space character between the first name and last name.

For an example look at the below name I have in excel sheet.

Using LEFT, RIGHT, and Instr function we can extract the substrings. Below is the code to extract the First Name.

Code:

 Sub FirstName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 2).Value = Left(Cells(K, 1).Value, InStr(1, Cells(K, 1).Value, "") - 1) Next K End Sub 

Run the macro and see the first name as a substring in the message box.

Use below code to extract the last name as a substring.

Code:

 Sub LastName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 3).Value = Right(Cells(K, 1).Value, Len(Cells(K, 1)) - InStr(1, Cells(K, 1).Value, "")) Next K End Sub 

Run the macro and we will see the last name in the message box.

I have assigned the macro button to the worksheet, download the workbook, and use them.