Ez az oktatóanyag bemutatja, hogyan kell használni a Közép VBA funkciót karakterek kivonására egy szöveges karakterlánc közepéről.
Középfunkció
Középfunkció Kapjon n karaktert
A VBA Mid függvény n karaktert ad vissza az m pozícióból induló karakterláncból:
123456789 | KözépsőPélda_1 ()MsgBox Mid ("ABCDEFGHI", 4, 1) 'Az eredmény: "D"MsgBox Mid ("ABCDEFGHI", 4, 2) 'Az eredmény: "DE"MsgBox Mid ("ABCDEFGHI", 4, 50) 'Az eredmény: "DEFGHI"MsgBox Mid ("ABCDEFG hI", 6, 1) 'Az eredmény: "F"MsgBox Mid ("ABCDEFG hI", 6, 2) 'Az eredmény: "FG"MsgBox Mid ("ABCDEFG hI", 6, 4) 'Az eredmény: "FG h"End Sub |
Középfunkció Kapjon n karaktert egy változóba
Amint az fent látható, egyszerűen meghatározhat egy karakterláncot az idézőjelekkel körülvett szöveg bevitelével. De a MID függvény a string változókkal is működik. Ezek a példák n karaktert vonnak ki az m pozícióból induló karakterláncból.
12345678 | KözépsőPélda_2 ()Dim StrEx mint karakterlánc 'Határozzon meg egy karakterlánc -változótStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Az eredmény: "B"MsgBox Mid (StrEx, 2, 2) 'Az eredmény: "BC"MsgBox Mid (StrEx, 2, 50) 'Az eredmény: "BCDEFGHI"End Sub |
Középfunkció Kapjon n karaktert egy cellából
A karakterláncokat a VBA kódban lehet meghatározni, de a cellákból származó értékeket is használhatja. Olvassa el a cella értékét, tárolja azt egy karakterlánc -változóban, és vegyen ki n karaktert a munkalap cellaértékéből az m pozícióból kiindulva.
1234567891011 | KözépsőPélda_3 ()Dim StrEx mint karakterlánc 'Határozzon meg egy karakterlánc -változótOlvassa el az A1 cella értékét az 1. munkalaponStrEx = ThisWorkbook.Worksheets ("Sheet1"). Tartomány ("A1"). ÉrtékEbben a példában az A1 cella értéke "Legyen az Erő veled"MsgBox Mid (StrEx, 4, 6) 'Az eredmény: "az F" (jegyezze meg a szóközt az elején)MsgBox Mid (StrEx, 2, 8) 'Az eredmény: "a F"MsgBox Mid (StrEx, 3, 4) 'Az eredmény: "y"End Sub |
Középfunkció n karakter cseréje
A fenti példákban a Mid függvény nem változtatta meg az eredeti karakterláncot. Egy részét visszaadta, az eredeti húrt érintetlenül hagyva. A Mid Function funkció használható karakterláncok karaktereinek cseréjére.
12345678910111213141516171819202122 | KözépsőPélda_4 ()Dim StrEx mint karakterlánc 'Határozzon meg egy karakterlánc -változótKözépsőPélda_4 ()Dim StrEx mint karakterlánc 'Határozzon meg egy karakterlánc -változótStrEx = "Az Erő legyen veled"Közép (StrEx, 5, 1) = "VWXYZ"Az MsgBox StrEx eredménye: "Legyen Vhe Horce veled"'A középfunkció megtalálta az 5. pozíciót, és kicserélt 1 karaktert az eredeti karakterláncbanStrEx = "Az Erő legyen veled"Közép (StrEx, 5, 3) = "VWXYZ"Az MsgBox StrEx eredménye: "A VWX Horce legyen veled"'A középfunkció megtalálta az 5. pozíciót, és lecserélt 3 karaktert az eredeti karakterláncbanStrEx = "Az Erő legyen veled"Közép (StrEx, 5, 8) = "VWXYZ"Az MsgBox StrEx eredménye: "A VWXYZorce legyen veled"'A középfunkció megtalálta az 5. pozíciót, és megpróbált 8 karaktert kicserélni."A" VWXYZ "csak 5 karakterből áll, így csak 5 karaktert cseréltek ki.End Sub |
Középfunkció Második szó kivonata egy kifejezésből
Használhatjuk a VBA Mid funkciót a VBA Instr függvénnyel, hogy megkapjuk a szöveg második szavát.
A VBA InStr funkció visszaadhatja egy karakter pozícióját a szövegben.
1 | InStr ("Két szó", "") 'Az eredmény 4 |
Az InStr segítségével kereshetjük meg az első teret, majd újra használhatjuk az InStr -t az első szóköz után a keresés elindításával, hogy megtaláljuk a szöveg második helyét. Végül a Mid funkciót használhatjuk a szó kinyerésére, mert ismerjük a második szó kiinduló helyzetét és hosszát (a két szóköz pozíció közötti különbség).
12345678910111213141516171819202122232425 | Sub -MidExample_5 ()Dim StrEx mint karakterlánc 'Határozzon meg egy karakterlánc -változótDim StartPos mint egészDim EndPos mint egészHalvány SecondWord karakterlánckéntStrEx = "James Earl Jones színész"StartPos = InStr (StrEx, "")'Az eredmény 6- Keresse meg az első szóköz pozíciójátEndPos = InStr (StartPos + 1, StrEx, "")'Az eredmény 11'Keresse meg a második szóköz pozícióját az első szó után történő keresés elindításávalSecondWord = Középső (StrEx, StartPos + 1, EndPos - StartPos - 1)'A Mid kivonja az első szóköz után kezdődő karaktereket (StartPos +1)'Mid a második szó hosszát is használja.'Ez a különbség a szóközhelyek -1 közöttMsgBox SecondWord- Az eredmény EarlEnd Sub |