Denne vejledning viser, hvordan du bruger Mid VBA -funktionen til at udtrække tegn fra midten af en tekststreng.
Mid funktion
Mid Funktion Få n tegn
VBA Mid -funktionen returnerer n tegn fra en streng, der starter fra position m:
123456789 | Sub MidExample_1 ()MsgBox Mid ("ABCDEFGHI", 4, 1) 'Resultat er: "D"MsgBox Mid ("ABCDEFGHI", 4, 2) 'Resultat er: "DE"MsgBox Mid ("ABCDEFGHI", 4, 50) 'Resultat er: "DEFGHI"MsgBox Mid ("ABCDEFG hI", 6, 1) 'Resultat er: "F"MsgBox Mid ("ABCDEFG hI", 6, 2) 'Resultat er: "FG"MsgBox Mid ("ABCDEFG hI", 6, 4) 'Resultat er: "FG h"Afslut Sub |
Mid -funktion Få n tegn i en variabel
Som vist ovenfor kan du definere en streng ved blot at indtaste tekst omgivet af anførselstegn. Men MID -funktionen fungerer også med strengvariabler. Disse eksempler vil udtrække n tegn fra en streng, der starter fra position m.
12345678 | Sub MidExample_2 ()Dim StrEx som streng 'Definer en strengvariabelStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Resultatet er: "B"MsgBox Mid (StrEx, 2, 2) 'Resultat er: "BC"MsgBox Mid (StrEx, 2, 50) 'Resultat er: "BCDEFGHI"Afslut Sub |
Mid -funktion Få n tegn fra en celle
Strenge kan defineres i VBA -kode, men du kan også bruge værdier fra celler. Læs værdien af en celle, gem den i en strengvariabel, og udtræk n tegn fra denne regnearkscelleværdi fra position m.
1234567891011 | Sub MidExample_3 ()Dim StrEx som streng 'Definer en strengvariabel'Læs værdien af celle A1 i regneark Ark1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Område ("A1"). Værdi'I dette eksempel er værdien af celle A1 "Må kraften være med dig"MsgBox Mid (StrEx, 4, 6) 'Resultat er: "the F" (Bemærk mellemrummet i starten)MsgBox Mid (StrEx, 2, 8) 'Resultatet er: "ay F"MsgBox Mid (StrEx, 3, 4) 'Resultatet er: "y th"Afslut Sub |
Mid Funktion Erstat n tegn
I eksemplerne ovenfor ændrede Mid -funktionen ikke den originale streng. Den returnerede en del af den og efterlod den originale streng intakt. Mid -funktion kan bruges til at erstatte tegn i en streng.
12345678910111213141516171819202122 | Sub MidExample_4 ()Dim StrEx som streng 'Definer en strengvariabelSub MidExample_4 ()Dim StrEx som streng 'Definer en strengvariabelStrEx = "Må kraften være med dig"Midt (StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'resultat er: "Må Vhe Horce være med dig"'Mid Funktion fandt position 5 og erstattede 1 tegn i den originale strengStrEx = "Må kraften være med dig"Midt (StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'resultat er: "Må VWX Horce være med dig"'Mid Funktion fandt position 5 og erstattede 3 tegn i den originale strengStrEx = "Må kraften være med dig"Midt (StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'resultat er: "Må VWXYZorce være med dig"'Mid Funktion fandt position 5 og forsøgte at erstatte 8 tegn.'"VWXYZ" har kun 5 tegn, så kun 5 tegn blev udskiftet.Afslut Sub |
Mid -funktion Udtræk andet ord fra en sætning
Vi kan bruge VBA Mid -funktion med VBA Instr -funktion til at få det andet ord i en tekst.
VBA InStr -funktion kan returnere placeringen af et tegn inde i teksten.
1 | InStr ("To ord", "") 'Resultat er 4 |
Vi kan bruge InStr til at finde det første mellemrum, derefter kan vi bruge InStr igen ved at starte søgningen efter det første mellemrum for at finde det andet mellemrum i teksten. Endelig kan vi bruge Mid -funktionen til at udtrække ordet, fordi vi kender startpositionen for det andet ord og dets længde (forskellen mellem de to mellemrumspositioner).
12345678910111213141516171819202122232425 | Sub MidExample_5 ()Dim StrEx som streng 'Definer en strengvariabelDim StartPos som heltalDim EndPos som heltalDim SecondWord som strengStrEx = "James Earl Jones er skuespiller"StartPos = InStr (StrEx, "")'Resultatet er 6'Find placeringen af det første rumEndPos = InStr (StartPos + 1, StrEx, "")'Resultatet er 11'Find placeringen af det andet mellemrum ved at starte søgningen efter det første mellemrumSecondWord = Mid (StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid udtrækker tegnene, der starter efter det første mellemrum (StartPos +1)'Mid bruger også længden af det andet ord.'Det er forskellen mellem mellemrumspositioner -1MsgBox SecondWord'Resultatet er EarlAfslut Sub |