See õpetus näitab, kuidas kasutada funktsiooni Mid VBA tekstistringi keskelt märkide eraldamiseks.
Keskmine funktsioon
Keskfunktsioon Hankige n tähemärki
Funktsioon VBA Mid tagastab n -tähemärgi stringist, mis algab positsioonist m:
123456789 | AlamklassNäide_1 ()MsgBox Mid ("ABCDEFGHI", 4, 1) 'Tulemus on: "D"MsgBox Mid ("ABCDEFGHI", 4, 2) 'Tulemus on: "DE"MsgBox Mid ("ABCDEFGHI", 4, 50) 'Tulemus on: "DEFGHI"MsgBox Mid ("ABCDEFG hI", 6, 1) 'Tulemus on: "F"MsgBox Mid ("ABCDEFG hI", 6, 2) 'Tulemus on: "FG"MsgBox Mid ("ABCDEFG hI", 6, 4) 'Tulemus on: "FG h"End Sub |
Keskfunktsioon Hankige muutujast n tähemärki
Nagu ülalpool näidatud, saate stringi määratleda lihtsalt jutumärkidega ümbritsetud teksti sisestamisega. Kuid MID -funktsioon töötab ka stringimuutujatega. Need näited eraldavad n -tähemärgi stringist, mis algab positsioonist m.
12345678 | AlamklassNäide_2 ()Dim StrEx stringina 'Määrake stringimuutujaStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Tulemus: "B"MsgBox Mid (StrEx, 2, 2) 'Tulemus: "BC"MsgBox Mid (StrEx, 2, 50) 'Tulemus: "BCDEFGHI"End Sub |
Keskfunktsioon Hankige lahtrist n märki
Stringid saab määratleda VBA -koodis, kuid saate kasutada ka lahtrite väärtusi. Lugege lahtri väärtust, hoidke seda stringimuutjas ja eraldage sellest töölehe lahtri väärtusest n tähemärki, alustades positsioonist m.
1234567891011 | AlamklassNäide_3 ()Dim StrEx stringina 'Määrake stringimuutuja"Lugege töölehe lehe 1 lahtri A1 väärtustStrEx = ThisWorkbook.Worksheets ("Sheet1"). Vahemik ("A1"). VäärtusSelle näite puhul on lahtri A1 väärtus "Olgu jõud teiega"MsgBox Mid (StrEx, 4, 6) 'Tulemuseks on "F" (pange tähele tühikut alguses)MsgBox Mid (StrEx, 2, 8) 'Tulemus on: "a F"MsgBox Mid (StrEx, 3, 4) 'Tulemus: "y"End Sub |
Keskfunktsioon Asenda n tähemärki
Ülaltoodud näidetes ei muutnud funktsioon Mid algset stringi. See tagastas osa sellest, jättes algse nööri puutumata. Funktsiooni Mid saab kasutada stringi märkide asendamiseks.
12345678910111213141516171819202122 | AlamklassNäide_4 ()Dim StrEx stringina 'Määrake stringimuutujaAlamklassNäide_4 ()Dim StrEx stringina 'Määrake stringimuutujaStrEx = "Olgu jõud teiega"Keskmine (StrEx, 5, 1) = "VWXYZ"MsgBox StrExi tulemus on: "Olgu Vhe Horce teiega"'Keskfunktsioon leidis positsiooni 5 ja asendas algse stringi 1 tähemärgiStrEx = "Olgu jõud teiega"Keskmine (StrEx, 5, 3) = "VWXYZ"MsgBox StrExi tulemus on: "Olgu VWX Horce teiega"„Keskfunktsioon leidis positsiooni 5 ja asendas algses stringis 3 märkiStrEx = "Olgu jõud teiega"Keskmine (StrEx, 5, 8) = "VWXYZ"MsgBox StrExi tulemus on: "Olgu VWXYZorce teiega"„Keskfunktsioon leidis positsiooni 5 ja proovis asendada 8 tähemärki.'' VWXYZ '' sisaldab ainult 5 tähemärki, seega asendati ainult 5 tähemärki.End Sub |
Keskfunktsioon Väljavõte fraasist teise sõna
Teksti teise sõna saamiseks saame kasutada funktsiooni VBA Mid koos funktsiooniga VBA Instr.
Funktsioon VBA InStr võib tagastada märgi asukoha teksti sees.
1 | InStr ("Kaks sõna", "") 'Tulemus on 4 |
Esimese tühiku leidmiseks saame kasutada InStr -i, seejärel saame uuesti kasutada InStr -i, alustades otsingut pärast esimest tühikut, et leida tekstist teine tühik. Lõpuks saame sõna ekstraheerimiseks kasutada funktsiooni Mid, sest me teame teise sõna lähtepositsiooni ja selle pikkust (kahe tühiku positsiooni erinevus).
12345678910111213141516171819202122232425 | AlamklassNäide_5 ()Dim StrEx stringina 'Määrake stringimuutujaDim StartPos täisarvunaDim EndPos täisarvunaHämardage sekundisõna stringinaStrEx = "James Earl Jones on näitleja"StartPos = InStr (StrEx, "")'Tulemus on 6'Leidke esimese ruumi asukohtEndPos = InStr (StartPos + 1, StrEx, "")'Tulemus on 11"Leidke teise tühiku asukoht, alustades otsimist pärast esimest tühikutSecondWord = Mid (StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid ekstraheerib pärast esimest tühikut algavaid märke (StartPos +1)'Mid kasutab ka teise sõna pikkust."See on tühikute positsioonide erinevus -1MsgBox SecondWord"Tulemus on EarlEnd Sub |