Funcția VBA Mid - Extrageți caractere din mijlocul șirului

Cuprins

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
wave wave wave wave wave