A szubsztring az egyik legnépszerűbb függvény bármely programozási nyelvben. Megkönnyíti a feladatokat a karakterláncok kezelése során. Ahogy a neve is mutatja, a substring függvény a karakterláncot különböző részekre osztja bizonyos kritériumok alapján.
A VBA Substring függvények közül több is létezik. Gyakorlati helyzetekben ezek a részláncfüggvények igen hasznosak lehetnek egy karakterlánc egy részének kiemelésében.
Most ebben a bejegyzésben ismertetem az összes VBA részláncfüggvényt, amelyet Excel-makrókban használhat:
Tartalomjegyzék
LEFT részláncfüggvény:
A LEFT függvény az Excel VBA-ban arra szolgál, hogy a karakterlánc elejétől meghatározott számú karaktert hozzon ki. A LEFT függvény szintaxisa a következő:
Left (text_string, length)
- Itt a ‘text_string’ a leválasztandó bemeneti karakterláncra utal.
- A ‘length’ pedig a kivonandó karakterek számára.
Példák:
Left ("Exceltrick", 5) 'az "Excel"
Left ("SomeText", 4) 'az "Some"
Megjegyzés: Az első argumentumban keményen kódolt karakterlánc használata helyett a ‘text_string’-et az excel táblázatból is lekérheti, például ActiveSheet.Range(“A1”).
Right Substring függvény:
A RIGHT függvény az Excel VBA-ban éppen ellentétes a LEFT függvénnyel. A szöveges karakterlánc végétől meghatározott számú karaktert ad vissza. A RIGHT függvény szintaxisa a következő:
Right (text_string, length)
- Itt a ‘text_string’ a leválasztandó bemeneti karakterláncra utal.
- A ‘length’ pedig a kivonandó karakterek számára utal, de a kivonás a jobb oldalról kezdődik.
Példa:
Jobbra ("Exceltrick", 5) 'a kimenet "trükk"
Jobbra ("SomeText", 4) 'az eredmény "Szöveg"
Megjegyzés: Az első argumentumban keményen kódolt karakterlánc használata helyett a ‘text_string’-et is lekérheti az excel táblából ActiveSheet.Range(“A1”) néven.
MID Substring függvény:
A MID sokkal jobb függvény, mint az első kettő, lehetővé teszi a kivont karakterlánc kezdő és végpozíciójának megadását. A MID VBA Substring függvény szintaxisa a következő:
Mid(text_string, start_position, Length)
- Itt a ‘text_string’ a szétválasztandó bemeneti stringre utal.
- ‘start_position’ arra a numerikus pozícióra utal, ahonnan a kivonást el kell kezdeni.
- A ‘length’ pedig a kivonandó karakterek számára utal.
Példa:
MID ("Exceltrick", 2,4) 'a kimenet "celt"
MID ("SomeText", 4,4) 'az eredmény "Text"
Megjegyzés: Az első argumentumban keményen kódolt karakterlánc használata helyett a ‘text_string’-et is lekérheti az excel táblából ActiveSheet.Range(“A1”) formában.
SPLIT Substring funkció:
A SPLIT függvény egy másik VBA függvény, amely egy karakterlánc részláncozására vagy felosztására használható. Az SPLIT függvény nagyon jól jöhet, amikor egy szöveges karakterláncot több részre osztunk egy elválasztójel alapján. A split függvény szintaxisa a következő:
Split (text_string, Delimiter, limit, Compare)
- Itt a ‘text_string’ a szétválasztandó bemeneti stringre utal.
- A ‘Delimiter’ az elválasztó karakterre utal, amely a stringet részekre osztja. Ez egy opcionális argumentum, ha üresen hagyjuk, akkor a szóköz karakter ” ” lesz az alapértelmezett elválasztó karakter.
- ‘limit’ a részláncrészek maximális számára utal, amelyekre a karakterláncot fel kell osztani. Ez is egy opcionális argumentum, az alapértelmezett érték (-1), ami azt jelenti, hogy a részláncolásnak minden olyan pozícióban meg kell történnie, ahol az elválasztó jel találkozik.
- ‘compare’ egy opcionális numerikus érték, amely megadja a részláncok kiértékelésekor használandó összehasonlítást.
Példa:
Például van egy olyan szöveges karakterláncunk, mint “Ez egy szöveges karakterlánc”, és most ezt a karakterláncot különálló szavakra kell bontanunk, ezért ebben az esetben a szóközt ” ” fogjuk használni elválasztóként. A split függvényt a következőképpen használjuk:
Split ("Ez egy szöveges karakterlánc", " ")
A split függvény eredménye egy szótömb lesz: “This” “is” “a” “text” “string”.
Ajánlott olvasmány: VBA Split Function
VBA Substring Macro Example:
Az alábbiakban létrehoztam egy makrót, amely a VBA programozásban elérhető összes részlánc-technikát szemlélteti. Ez egy egyszerű és magától értetődő makró, ebben egyszerűen felosztottam egy szöveges karakterláncot a fent leírt 4 módszerrel.
Az alábbiakban az általam ehhez a makróhoz használt kódot ismertetem:
Sub BreakStrings()
'Left függvény
a = Left("Excel Trükk szöveg", 5)
'Right függvény
b = Right("Excel Trükk szöveg", 11)
'Mid függvény
c = Mid("Excel Trükk szöveg", 1, 11)
'Split függvény
d = Split("Excel Trick Text", " ")
For Each wrd In d
strg = strg & wrd & ", "
Next
'Az eredmények megjelenítése egy mesage boxban
MsgBox "Left: " & a & vbNewLine & "Right: " & b & vbNewLine & "Mid: " & c & vbNewLine & "Split: " & strg
End Sub
Ez tehát a VBA részláncfüggvényekről szólt. Ossza meg a témával kapcsolatos véleményét.