VBA SubString

Excel VBA SubString

SubString är en del av strängen eller delen eller strängens karaktär kallas "SubString". Det finns tre typer av understrängningsfunktioner i VBA VÄNSTER, HÖGER och MIDD de liknar kalkylbladssträngarna i Excel.

En sträng är inget annat än en serie tecken och tecken kan vara alfabet, siffror, specialtecken och också kombinera alla dessa.

Ofta i excel när vi arbetar med data som är strängen vi behöver för att bara få delen av strängen för att underlätta vårt syfte. Vi behöver kanske inte använda hela strängen men vi behöver bara delen av strängen för vårt bruk. Till exempel, om du har namnet “Sachin Tendulkar” kan du bara behöva den första delen av namnet, dvs bara “Sachin”. Detta kallas som SubString av strängen i Excel VBA. För att hantera dessa strängar har vi inbyggda funktioner under TEXT-funktionen i excel-kategori.

I den här artikeln kommer vi att diskutera hur man får substring från hela strängen i VBA.

Hur använder jag substringsfunktioner i VBA?

För att extrahera strängen från strängen har vi några av de inbyggda textfunktionerna och några av de viktiga funktionerna är VÄNSTER, HÖGER, INSTR och MID i excel. Funktionen Instr kommer att fungera som stödfunktion för de andra tre funktionerna.

Vi kommer att se hur man använder dessa funktioner för att extrahera underlag praktiskt. Läs nedanstående exempel för att förstå dem.

Du kan ladda ner denna VBA SubString Excel-mall här - VBA SubString Excel-mall

Exempel # 1 - Användning av vänster funktion

Om du har det fullständiga namnet "Sachin Tendulkar" och du behöver bara förnamnet för att extraheras eftersom substringen använder följande kod för att få samma.

Steg 1: Skapa ett makronamn och definiera två variabler som sträng.

Koda:

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

Steg 2: Tilldela nu namnet “Sachin Tendulkar” till variabeln FullName .

Koda:

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

Steg 3: Nu har variabeln FullName värdet "Sachin Tendulkar". Nu måste vi extrahera excel-VBA-strängning av förnamnet från hela namnet. Så tilldela värdet för variabeln FirstName via LEFT-funktionen.

Koda:

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

Steg 4: VBA VÄNSTER-funktion första argumentet är Sträng, det är vad som är hela värdet eller hela strängen. I detta exempel är vårt fulla värde eller sträng “Sachin Tendulkar” som tilldelas variabeln FullName.

Så leverera variabeln FullName som argument.

Koda:

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

Steg 5: Nästa  argument är hur många tecken vi behöver från strängen vi har levererat, så i det här fallet behöver vi förnamnet " Sachin " så totalt behöver vi 6 tecken från vänster sida.

Koda:

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

Steg 6: Visa nu resultatet i en meddelanderuta i VBA.

Koda:

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

Steg 7: Kör makrot, se förnamnet som en delsträng i meddelandefältet.

Exempel # 2 - Få SubString från höger

Liksom hur vi har extraherat substratet från vänster kan vi också extrahera från höger. Ta samma namn som ett exempel.

Steg 1: Definiera två variabler som sträng.

Koda:

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

Steg 2: Tilldela som vanligt värdet till variabeln FullName som "Sachin Tendulkar"

Koda:

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

Steg 3: Tilldela nu variabeln LastName värdet genom RIGHT excel-funktionen.

Koda:

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

Steg 4: Sträng är vårt fullständiga namnange variabeln.

Koda:

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

Steg 5: Längd är hur många tecken vi behöver från höger sida, vi behöver 9 tecken från höger sida.

Koda:

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

Steg 6: Visa detta värde i meddelandefältet .

Koda:

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

Steg 7: Kör makrot så ser vi efternamnet i meddelandefältet.

Exempel # 3 - Använda instrumentfunktionen

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 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 an 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 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.