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:

  1. a VBA SPLIT függvény egy tömböt ad vissza, amely a 0 bázisból indul.
  2. 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.

ez az egyéni képlet a legmegfelelőbb, ha minden címben következetes formátum van – azaz a várost mindig a két vessző után említik., Ha az adatok nem konzisztensek, akkor nem kapja meg a kívánt eredményt.

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ó.