VBA Mid-functie - Extraheer tekens uit het midden van de string

Inhoudsopgave

Deze zelfstudie laat zien hoe u de Mid VBA-functie gebruikt om tekens uit het midden van een tekstreeks te extraheren.

Middenfunctie

Middenfunctie Get n Characters

De VBA Mid-functie retourneert n tekens uit een tekenreeks vanaf positie m:

123456789 Sub MiddenVoorbeeld_1()MsgBox Mid("ABCDEFGHI", 4, 1) 'Resultaat is: "D"MsgBox Mid("ABCDEFGHI", 4, 2) 'Resultaat is: "DE"MsgBox Mid("ABCDEFGHI", 4, 50) 'Resultaat is: "DEFGHI"MsgBox Mid("ABCDEFG hI", 6, 1) 'Resultaat is: "F"MsgBox Mid("ABCDEFG hI", 6, 2) 'Resultaat is: "FG"MsgBox Mid("ABCDEFG hI", 6, 4) 'Resultaat is: "FG h"Einde sub

Middenfunctie Krijg n tekens in een variabele

Zoals hierboven weergegeven, kunt u een tekenreeks eenvoudig definiëren door tekst tussen aanhalingstekens in te voeren. Maar de MID-functie werkt ook met stringvariabelen. Deze voorbeelden extraheren n karakters uit een string vanaf positie m.

12345678 Sub MiddenVoorbeeld_2()Dim StrEx As String 'Definieer een stringvariabele'StrEx = "ABCDEFGHI"MsgBox Mid(StrEx, 2, 1) 'Resultaat is: "B"MsgBox Mid(StrEx, 2, 2) 'Resultaat is: "BC"MsgBox Mid(StrEx, 2, 50) 'Resultaat is: "BCDEFGHI"Einde sub

Middenfunctie Haal n tekens uit een cel

Strings kunnen worden gedefinieerd in VBA-code, maar u kunt ook waarden uit cellen gebruiken. Lees de waarde van een cel, bewaar deze in een tekenreeksvariabele en extraheer n tekens uit die werkbladcelwaarde vanaf positie m.

1234567891011 Sub MiddenVoorbeeld_3()Dim StrEx As String 'Definieer een stringvariabele''Lees de waarde van cel A1 in werkblad Blad1'StrEx = ThisWorkbook.Worksheets("Blad1").Bereik("A1").Waarde'Voor dit voorbeeld is de waarde van cel A1 "May the Force be with you"MsgBox Mid(StrEx, 4, 6) 'Resultaat is: " de F" (let op de spatie aan het begin)MsgBox Mid(StrEx, 2, 8) 'Resultaat is: "ay the F"MsgBox Mid(StrEx, 3, 4) 'Resultaat is: "y th"Einde sub

Middenfunctie Vervang n tekens

In de bovenstaande voorbeelden heeft de functie Mid de oorspronkelijke tekenreeks niet gewijzigd. Het gaf een deel ervan terug, waarbij de originele string intact bleef. Mid Function kan worden gebruikt om tekens in een string te vervangen.

12345678910111213141516171819202122 Sub MiddenVoorbeeld_4()Dim StrEx As String 'Definieer een stringvariabele'Sub MiddenVoorbeeld_4()Dim StrEx As String 'Definieer een stringvariabele'StrEx = "Moge de Force bij je zijn"Mid(StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'Resultaat is: "Moge Vhe Horce bij je zijn"'Mid Function vond positie 5 en verving 1 teken in de originele stringStrEx = "Moge de Force bij je zijn"Mid(StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'Resultaat is: "Moge VWX Horce bij je zijn"'Mid Function vond positie 5 en verving 3 karakters in de originele stringStrEx = "Moge de Force bij je zijn"Mid(StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'Resultaat is: "Moge VWXYZorce bij je zijn"'Mid Function vond positie 5 en probeerde 8 tekens te vervangen.'"VWXYZ" heeft slechts 5 tekens, dus er zijn slechts 5 tekens vervangen.Einde sub

Middenfunctie Extraheer tweede woord uit een zin

We kunnen de VBA Mid-functie gebruiken met de VBA Instr-functie om het tweede woord in een tekst te krijgen.

De VBA InStr-functie kan de positie van een teken in de tekst retourneren.

1 InStr("Twee woorden", " ") 'Resultaat is 4

We kunnen InStr gebruiken om de eerste spatie te vinden, daarna kunnen we opnieuw InStr gebruiken om de zoekopdracht na de eerste spatie te starten om de tweede spatie in de tekst te vinden. Ten slotte kunnen we de functie Mid gebruiken om het woord te extraheren omdat we de startpositie van het tweede woord en de lengte ervan kennen (het verschil tussen de posities van de twee spaties).

12345678910111213141516171819202122232425 Sub MiddenVoorbeeld_5()Dim StrEx As String 'Definieer een stringvariabele'Dim StartPos als geheel getalDim EndPos als geheel getalDim SecondWord als stringStrEx = "James Earl Jones is een acteur"StartPos = InStr(StrEx, " ")'Resultaat is 6'Vind de positie van de eerste spatie'EndPos = InStr(StartPos + 1, StrEx, " ")'Resultaat is 11'Vind de positie van de tweede spatie door na de eerste spatie te zoekenSecondWord = Mid(StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid extraheert de tekens die beginnen na de eerste spatie (StartPos +1)'Mid gebruikt ook de lengte van het tweede woord.'Dat is het verschil tussen spaties posities -1MsgBox SecondWord'Resultaat is Earl'Einde sub
wave wave wave wave wave