VBA SubString - Comment extraire une sous-chaîne à l'aide des fonctions VBA?

Table des matières

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, nous devons 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 peut-être besoin que de la première partie du nom, c'est-à-dire uniquement de «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.

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 le même.

É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 de «Sachin Tendulkar». Maintenant, nous devons 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 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: Le prochain argument 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 » si 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

Comme nous avons extrait la sous-chaîne de la gauche de la même manière, 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

Step 2: As usual, assign the value to the variable FullName as “Sachin Tendulkar.”

Code:

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

Step 3: Now, for the variable LastName, assign the value through the RIGHT excel function.

Code:

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

Step 4: String is our FullName, so supply the variable.

Code:

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

Step 5: Length is how many characters we need from the right side. We need 9 characters on the right side.

Code:

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

Step 6: Show this value in the message box.

Code:

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

Step 7: Run the macro. We will see the last name in the message box.

Example #3 - Using Instr Function

In the above examples, we had only one name, and we have directly supplied how many characters we need from the left & right. But in the case of many names, first name & last name characters are not the same, it will differ from name to name. In those cases, we cannot supply the number of characters directly so we can use the function Instr.

Instr function will return the supplied character position in the string. For example, look at the below code.

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 a 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 example, look at the below name I have in the 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

Exécutez la macro et voyez le prénom sous forme de sous-chaîne dans la boîte de message.

Utilisez le code ci-dessous pour extraire le nom de famille en tant que sous-chaîne.

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

Exécutez la macro et nous verrons le nom de famille dans la boîte de message.

J'ai attribué le bouton macro à la feuille de calcul, téléchargé le classeur et les utiliser.

Articles intéressants...