amikor a VBA-val dolgozik az excelben, akkor szükség lehet egy karakterlánc különböző részekre történő felosztására egy határoló alapján.
például, ha van címe, használhatja a VBA Split funkciót, hogy a cím különböző részeit vesszővel elválasztja (ami ebben az esetben a határoló).
SPLIT egy beépített karakterlánc funkció Excel VBA, hogy tudod használni, hogy osztott egy szöveges karakterlánc alapján határoló.,
Ez a bemutató a következőket tartalmazza:
Excel VBA SPLIT Function – Syntax
Split ( Expression, , , )
- kifejezés: ez az a karakterlánc, amelyet a delimiter alapján meg szeretne osztani. Például a címpélda esetében a teljes cím a “kifejezés” lenne. Abban az esetben, ha ez egy nulla hosszúságú karakterlánc (“”) SPLIT funkció visszatérne egy üres tömb.
- határoló: ez egy opcionális argumentum. Ez a határoló, amelyet a “kifejezés” argumentum felosztására használnak., Címpéldánk esetén a vessző egy határoló, amelyet a cím különböző részekre történő felosztására használnak. Ha nem adja meg ezt az argumentumot, egy szóköz karakter az alapértelmezett határoló. Abban az esetben, ha nulla hosszúságú karakterláncot ( “”) ad, a teljes “kifejezés” karakterláncot a függvény adja vissza.
- Limit: ez egy opcionális argumentum. Itt adja meg a visszaadni kívánt szubsztrátumok teljes számát. Például, ha csak az első három alrendszert szeretné visszaadni az “expresszió” argumentumból, akkor ez 3 lenne., Ha nem adja meg ezt az argumentumot, az alapértelmezett -1, amely visszaadja az összes alrendszert.
- Összehasonlítás: ez egy opcionális argumentum. Itt adja meg az összehasonlítás típusát, amelyet a split funkció végre kíván hajtani az aljzatok értékelésekor. A következő lehetőségek állnak rendelkezésre:
- Ha az összehasonlítás 0: Ez egy bináris összehasonlítás. Ez azt jelenti, hogy ha a határoló egy szöveges karakterlánc (mondjuk ABC), akkor ez eset-érzékeny lenne. Az ” ABC “nem lenne egyenlő az” abc ” – vel.
- Ha az összehasonlítás 1: Ez egy szöveges összehasonlítás., Ez azt jelenti, hogy ha a határoló egy szöveges karakterlánc (mondjuk ABC), akkor még akkor is, ha ” abc “van a” kifejezés ” karakterláncban, akkor azt határolónak tekintjük.
most, hogy lefedtük az osztott funkció alapjait, nézzünk néhány gyakorlati példát.
1. példa-ossza meg a szavakat egy mondatban
tegyük fel, hogy megvan a szöveg – “a gyors barna róka ugrik a lusta kutya felett”.
használhatom a SPLIT funkciót, hogy a mondat minden szavát külön elemként kapjam egy tömbben.,
az alábbi kód erre vonatkozna:
Sub SplitWords()Dim TextStrng As StringDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result() = Split(TextStrng)End Sub
míg a kód nem tesz semmi hasznosat, segít megérteni, hogy a VBA osztott funkciója mit tesz.
Split funkció osztja a szöveges karakterláncot, majd minden szót hozzárendel az eredmény tömbbe.
tehát ebben az esetben:
- eredmény(0) tárolja az “a”
- eredmény(1) tárolja a “gyors”
- eredmény(2) tárolja a “barna” értéket stb.
ebben a példában csak az első argumentumot adtuk meg-amely a felosztandó szöveg., Mivel nincs határoló van megadva, úgy tér karakter, mint az alapértelmezett határoló.
fontos megjegyzés:
- a VBA SPLIT függvény egy tömböt ad vissza, amely a 0 bázisból indul.
- Ha az osztott függvény eredménye egy tömbhöz van hozzárendelve, akkor ezt a tömböt karakterlánc adattípusként kell deklarálni. Ha EGY változat adattípusként deklarálja,akkor egy típuseltérési hibát jelenít meg). A fenti példában vegye figyelembe, hogy az eredményt() karakterlánc adattípusként deklaráltam.,
2. példa-számolja meg a szavak számát egy mondatban
használhatja a SPLIT funkciót, hogy megkapja a szavak teljes számát egy mondatban. A trükk itt az, hogy megszámolja a tömb azon elemeinek számát, amelyeket a szöveg felosztásakor kap.
az alábbi kód egy üzenetmezőt jelenít meg a következő szóval:
Sub WordCount()Dim TextStrng As StringDim WordCount As IntegerDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result = Split(TextStrng)WordCount = UBound(Result()) + 1MsgBox "The Word Count is " & WordCountEnd Sub
ebben az esetben az UBound funkció megmondja nekünk a tömb felső határát (azaz a tömb maximális elemeinek számát)., Mivel az alap a tömb 0, 1 adunk, hogy a teljes szó száma.
hasonló kóddal létrehozhat egy egyéni funkciót a VBA-ban, amely a szöveget bemenetként veszi fel, majd visszaadja a szószámot.
az alábbi kód hozza létre ezt a funkciót:
a létrehozás után a WordCount funkciót ugyanúgy használhatja, mint bármely más rendszeres funkciót.
Ez a függvény a szavak közötti vezető, záró és kettős szóközöket is kezeli. Ezt a VBA kód TRIM funkciójának használatával tette lehetővé.,
abban az esetben, ha többet szeretne megtudni arról, hogy ez a képlet hogyan működik, hogy megszámolja a szavak számát egy mondatban, vagy szeretne megtudni egy nem VBA képletről, hogy megkapja a szószámot, nézd meg ezt a bemutatót.
3. példa-az előző két példában csak egy argumentumot használtunk a SPLIT függvényben, a többi pedig az alapértelmezett argumentumok.
ha más határolót használ, ezt meg kell adnia az osztott képletben.,
az alábbi kódban a SPLIT funkció egy vessző alapú tömböt ad vissza határolóként, majd egy üzenetet jelenít meg minden szóval külön sorban.
a fenti kódban a következő hurokhoz használtam az “eredmény” tömb minden elemének hozzárendelését a “DisplayText” változóhoz.
4. példa-ossza meg a címet három részre
a SPLIT funkcióval megadhatja, hogy hány osztást szeretne kapni. Például, ha nem adok meg semmit, a határoló minden példánya a karakterlánc megosztására szolgál.,
de ha 3-at definiálok határként, akkor a karakterlánc csak három részre oszlik.
például, ha a következő címmel Rendelkezem:
2703 Winifred Way, Indianapolis, Indiana, 46204
használhatom a Split funkciót a VBA-ban, hogy ezt a címet három részre osztsam.
az első kettőt a vesszőhatároló alapján osztja fel, a fennmaradó rész pedig a tömb harmadik elemévé válik.,
Az alábbi kódot mutatja, a cím, három különböző vonalak egy üzenet box:
az Egyik gyakorlati felhasználása, ez lehet, ha szeretné osztani egy sorban a címet a formátum megjelenik az üzenet mezőbe. Ezután létrehozhat egy egyéni funkciót, amely visszaadja a címet három részre osztva (minden egyes rész egy új sorban).
a következő kód ezt tenné:
miután ezt a kódot a modulban megtalálta, használhatja a munkafüzetben található funkciót (ThreePartAddress), mint bármely más Excel funkció.,
Ez a függvény egy argumentumot vesz igénybe – a címhez tartozó cellahivatkozást.
vegye figyelembe, hogy ahhoz, hogy a kapott cím három különböző sorban jelenjen meg, a csomagolási szövegformátumot a cellákra kell alkalmazni (az Igazítás csoport kezdőlapján található). Ha a’ Wrap Text ‘ formátum nincs engedélyezve, a teljes cím egyetlen sorként jelenik meg.
5. példa-Szerezd meg a város nevét a
címről a Split funkcióval a VBA-ban, megadhatja, hogy a kapott tömb melyik részét szeretné használni.,
például tegyük fel, hogy a vessző alapján felosztom a következő címet határolóként:
2703 Winifred Way, Indianapolis, Indiana, 46204
a kapott tömb az alábbiak szerint néz ki:
{"2703 Winifred Way", "Indianapolis", "Indiana", "46204"}
mivel ez egy tömb, választhatom a tömb egy adott részének megjelenítését vagy visszaküldését.
Az alábbiakban egy egyedi függvény kódja látható, ahol megadhat egy számot, majd visszaadja azt az elemet a tömbből. Például, ha az államnevet akarom, megadhatom a 3-at (mivel ez a tömb harmadik eleme).,
a fenti függvény két argumentumot vesz fel, a cella hivatkozást, amely tartalmazza a címet és a visszaadni kívánt elemszámot. A Split függvény felosztja a címelemeket, majd hozzárendeli az Eredményváltozóhoz.
ezután visszaadja a második argumentumként megadott elemszámot. Ne feledje, hogy mivel az alap 0, elemszám-1 A cím megfelelő részének visszaküldésére szolgál.
abban az esetben, ha a város nevét szeretné, a második argumentumként használhatja az 2-t. Abban az esetben, ha olyan számot használ, amely magasabb, mint az elemek teljes száma, akkor visszaadja a #értéket! hiba.
tovább egyszerűsítheti a kódot az alábbiak szerint:
a fenti kódban az Eredményváltozó használata helyett csak a megadott elemszámot adja vissza.
tehát, ha osztott (“Jó reggelt”) (0), akkor csak vissza az első elem, ami “jó”.,
Hasonlóképpen, a fenti kódban csak a megadott elemszámot adja vissza.
tetszhetnek a következő Excel útmutatók is:
- Excel VBA InStr funkció – példákkal magyarázva.
- hogyan lehet az adatokat Excel-ben rendezni a VBA segítségével (lépésről lépésre).
- 7 csodálatos dolog Excel szöveget oszlopok tehetünk az Ön számára.
- hogyan lehet A Word Count-ot Excel-ben megszerezni.
- VBA TRIM funkció.