Acest tutorial va arăta cum să utilizați funcția Mid VBA pentru a extrage caractere din mijlocul unui șir de text.
Funcția Mid
Funcția mijlocie Obțineți n caractere
Funcția VBA Mid returnează n caractere dintr-un șir începând de la poziția m:
123456789 | SubExemplu mediu_1 ()MsgBox Mid („ABCDEFGHI”, 4, 1) „Rezultatul este:„ D ”MsgBox Mid ("ABCDEFGHI", 4, 2) 'Rezultatul este: "DE"MsgBox Mid („ABCDEFGHI”, 4, 50) „Rezultatul este:„ DEFGHI ”MsgBox Mid („ABCDEFG hI”, 6, 1) „Rezultatul este:„ F ”MsgBox Mid („ABCDEFG hI”, 6, 2) „Rezultatul este:„ FG ”MsgBox Mid („ABCDEFG hI”, 6, 4) „Rezultatul este:„ FG h ”Sfârșitul Sub |
Funcția mijlocie Obțineți n caractere într-o variabilă
După cum se arată mai sus, puteți defini un șir pur și simplu introducând text înconjurat de ghilimele. Dar funcția MID va funcționa și cu variabile șir. Aceste exemple vor extrage n caractere dintr-un șir care începe din poziția m.
12345678 | SubExemplu mediu_2 ()Dim StrEx As String 'Definiți o variabilă de șirStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) „Rezultatul este:„ B ”MsgBox Mid (StrEx, 2, 2) „Rezultatul este:„ BC ”MsgBox Mid (StrEx, 2, 50) 'Rezultatul este: "BCDEFGHI"Sfârșitul Sub |
Funcția mijlocie Obțineți n caractere dintr-o celulă
Șirurile pot fi definite în codul VBA, dar puteți utiliza și valorile din celule. Citiți valoarea unei celule, păstrați-o într-o variabilă șir și extrageți n caractere din acea valoare Foaie de lucru Celula începând din poziția m.
1234567891011 | SubExemplu mediu_3 ()Dim StrEx As String 'Definiți o variabilă de șir„Citiți valoarea celulei A1 din foaia de lucru Sheet1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A1"). Value„Pentru acest exemplu, valoarea celulei A1 este„ Fie ca forța să fie cu tine ”MsgBox Mid (StrEx, 4, 6) 'Rezultatul este: "F" (Notați spațiul de la început)MsgBox Mid (StrEx, 2, 8) 'Rezultatul este: "ai F"MsgBox Mid (StrEx, 3, 4) „Rezultatul este:„ y th ”Sfârșitul Sub |
Funcția mijlocie Înlocuiți n caractere
În exemplele de mai sus, funcția Mid nu a schimbat șirul original. A returnat o parte din aceasta, lăsând intact șirul original. Mid Function poate fi utilizată pentru a înlocui caracterele dintr-un șir.
12345678910111213141516171819202122 | SubExemplu mediu_4 ()Dim StrEx As String 'Definiți o variabilă de șirSubExemplu mediu_4 ()Dim StrEx As String 'Definiți o variabilă de șirStrEx = "Forța să fie cu tine"Mid (StrEx, 5, 1) = "VWXYZ"Rezultatul MsgBox StrEx este: „Fie ca Vce Horce să fie cu tine”„Funcția de mijloc a găsit poziția 5 și a înlocuit 1 caracter în șirul originalStrEx = "Forța să fie cu tine"Mid (StrEx, 5, 3) = "VWXYZ"Rezultatul MsgBox StrEx este: „Fie ca VWX Horce să fie cu tine”„Funcția de mijloc a găsit poziția 5 și a înlocuit 3 caractere în șirul originalStrEx = "Forța să fie cu tine"Mid (StrEx, 5, 8) = "VWXYZ"Rezultatul MsgBox StrEx este: „Fie ca VWXYZorce să fie cu tine”„Funcția de mijloc a găsit poziția 5 și a încercat să înlocuiască 8 caractere.„„ VWXYZ ”are doar 5 caractere, deci au fost înlocuite doar 5 caractere.Sfârșitul Sub |
Funcția mijlocie Extrageți al doilea cuvânt dintr-o frază
Putem folosi funcția VBA Mid cu funcția VBA Instr pentru a obține al doilea cuvânt dintr-un text.
Funcția VBA InStr poate reveni la poziția unui caracter în interiorul textului.
1 | InStr („Două cuvinte”, „„) 'Rezultatul este 4 |
Putem folosi InStr pentru a găsi primul spațiu, apoi putem folosi din nou InStr începând căutarea după primul spațiu pentru a găsi al doilea spațiu în text. În cele din urmă, putem folosi funcția Mid pentru a extrage cuvântul, deoarece știm poziția de pornire a celui de-al doilea cuvânt și lungimea acestuia (diferența dintre pozițiile celor două spații).
12345678910111213141516171819202122232425 | SubExemplu mediu_5 ()Dim StrEx As String 'Definiți o variabilă de șirDim StartPos Ca întregDim EndPos ca întregDim SecondWord As StringStrEx = "James Earl Jones este un actor"StartPos = InStr (StrEx, "")„Rezultatul este 6„Găsiți poziția primului spațiuEndPos = InStr (StartPos + 1, StrEx, "")„Rezultatul este 11„Găsiți poziția celui de-al doilea spațiu începând căutarea după primul spațiuSecondWord = Mid (StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid extrage caracterele începând după primul spațiu (StartPos +1)„Mid folosește și lungimea celui de-al doilea cuvânt.„Aceasta este diferența dintre pozițiile spațiilor -1MsgBox SecondWordRezultatul este EarlSfârșitul Sub |