VBA SubString - Hoe een substring te extraheren met behulp van VBA-functies?

Inhoudsopgave

Excel VBA SubString

SubString is een onderdeel van de string of het gedeelte of het karakter van de string wordt "SubString" genoemd. Er zijn drie soorten subtekenreeksen in VBA LINKS, RECHTS en MID, ze zijn vergelijkbaar met de werkbladsubstrings in Excel.

Een tekenreeks is niets anders dan een reeks tekens, en tekens kunnen alfabetten, cijfers, speciale tekens zijn en deze ook allemaal combineren.

Vaak hebben we in Excel, wanneer we met gegevens werken, wat de string is, alleen het gedeelte van de string nodig om ons doel te vergemakkelijken. We hebben misschien niet de volledige string nodig om te gebruiken, maar we hebben alleen het deel van de string nodig voor ons gebruik. Als u bijvoorbeeld de naam 'Sachin Tendulkar' heeft, heeft u mogelijk alleen het eerste deel van de naam nodig, dwz alleen 'Sachin'. Dit wordt genoemd als SubString van de string in Excel VBA. Om met deze strings om te gaan, hebben we ingebouwde functies onder de TEXT-functie in de Excel-categorie.

In dit artikel zullen we bespreken hoe u de substring uit de volledige string in VBA kunt halen.

Hoe SubString-functies in VBA te gebruiken?

Om de substring uit de string te extraheren, hebben we enkele van de ingebouwde tekstfuncties, en enkele van de belangrijke functies zijn LINKS, RECHTS, INSTR en MID in Excel. De functie Instr zal dienen als ondersteunende functie voor de andere drie functies.

We zullen zien hoe we deze functies kunnen gebruiken om de substrings praktisch te extraheren. Lees de onderstaande voorbeelden om ze te begrijpen.

Voorbeeld # 1 - Linkerfunctie gebruiken

Als je de volledige naam hebt als "Sachin Tendulkar" en je hebt alleen de voornaam nodig om als substring te worden geëxtraheerd, gebruik dan de volgende code om dezelfde te krijgen.

Stap 1: Maak een macronaam en definieer twee variabelen als String.

Code:

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

Stap 2: Wijs nu de naam "Sachin Tendulkar" toe aan de variabele FullName .

Code:

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

Stap 3: Nu bevat de variabele FullName de waarde 'Sachin Tendulkar'. Nu moeten we de Excel VBA-substring van de voornaam uit de volledige naam halen. Wijs dus de waarde voor de variabele FirstName toe via de LEFT-functie.

Code:

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

Stap 4: VBA LEFT-functie eerste argument is String; dat is wat de volledige waarde of volledige string is. In dit voorbeeld is onze volledige waarde of tekenreeks "Sachin Tendulkar", die is toegewezen aan de variabele FullName.

Geef dus variabele FullName op als argument.

Code:

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

Stap 5: Het volgende argument is hoeveel tekens we nodig hebben van de string die we hebben opgegeven, dus in dit geval hebben we de voornaam " Sachin " nodig, dus totaal hebben we 6 tekens vanaf de linkerkant nodig.

Code:

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

Stap 6: Toon nu het resultaat in een berichtvenster in VBA.

Code:

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

Stap 7: Voer de macro uit en zie de voornaam als substring in het berichtvenster.

Voorbeeld # 2 - Get SubString van rechts

Net zoals we de subtekenreeks van links op dezelfde manier hebben geëxtraheerd, kunnen we ook van rechts extraheren. Neem dezelfde naam als voorbeeld.

Stap 1: definieer twee variabelen als String.

Code:

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

Stap 2: Wijs zoals gewoonlijk de waarde aan de variabele FullName toe als 'Sachin Tendulkar'.

Code:

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

Stap 3: Wijs nu voor de variabele LastName de waarde toe via de RIGHT Excel-functie.

Code:

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

Stap 4: String is onze FullName, dus geef de variabele op.

Code:

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

Stap 5: Lengte is het aantal tekens dat we vanaf de rechterkant nodig hebben. We hebben 9 tekens aan de rechterkant nodig.

Code:

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

Stap 6: toon deze waarde in het berichtvenster .

Code:

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

Stap 7: voer de macro uit. We zullen de achternaam zien in het berichtvenster.

Voorbeeld # 3 - Instr-functie gebruiken

In de bovenstaande voorbeelden hadden we maar één naam, en we hebben direct opgegeven hoeveel tekens we nodig hebben van links en rechts. Maar in het geval van veel namen, zijn voornaam en achternaam niet hetzelfde, het zal van naam tot naam verschillen. In die gevallen kunnen we het aantal karakters niet direct opgeven en kunnen we de functie Instr gebruiken.

Instr- functie retourneert de opgegeven tekenpositie in de tekenreeks. Kijk bijvoorbeeld naar de onderstaande code.

Code:

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

InStr (1, 'Sachin', 'a'), dit identificeert de positie van de letter 'a' als de eerste keer dat in de tekenreeks 'Sachin' voorkomt. In dit geval staat de letter "a" op de tweede positie. We krijgen dus 2 als resultaat in het berichtvenster.

Op deze manier kunnen we de Instr- functie gebruiken om de spatie tussen de voornaam en achternaam te vinden.

Kijk bijvoorbeeld naar de onderstaande naam die ik in het Excel-blad heb staan.

Met de LEFT-, RIGHT- en Instr- functie kunnen we de subtekenreeksen extraheren. Hieronder staat de code om de voornaam te extraheren.

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

Voer de macro uit en zie de voornaam als substring in het berichtvenster.

Gebruik de onderstaande code om de achternaam als substring te extraheren.

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

Voer de macro uit en we zullen de achternaam in het berichtvenster zien.

Ik heb de macroknop aan het werkblad toegewezen, de werkmap gedownload en gebruikt.

Interessante artikelen...