Når du arbeider med VBA-i Excel, kan du ha behov for å dele en streng i ulike deler basert på et skilletegn.
For eksempel, hvis du har en adresse, kan du bruke VBA-Split-funksjonen for å få ulike deler av adressen som er atskilt med et komma (som ville være skilletegn i dette tilfellet).
SPLIT er en innebygget string-funksjonen i Excel VBA som du kan bruke til å dele en tekststreng, basert på skilletegn.,
Denne Opplæringen Dekker:
Excel VBA SPLIT Funksjon – Syntaks
Split ( Expression, , , )
- Uttrykk: Dette er strengen som du ønsker å dele basert på skilletegn. For eksempel, i tilfelle av adressen eksempel, hele adressen ville være ‘uttrykk’. I tilfelle dette er en null-lengde streng («») SPLIT-funksjonen vil returnere en tom tabell.
- Skilletegn: Dette er et valgfritt argument. Dette er skilletegnet som brukes til å splitte ‘Uttrykk’ argument., I tilfelle av våre adressen eksempel et komma er et skilletegn som brukes til å dele adressen inn i forskjellige deler. Hvis du ikke angir dette som et argument, et mellomrom regnes som standard skilletegn. I tilfelle du gi en null-lengde streng («»), hele ‘Uttrykk’ strengen som returneres av funksjonen.
- Limit: Dette er et valgfritt argument. Her kan du angi totalt antall substrings at du ønsker å returnere. For eksempel, hvis du bare ønsker å komme tilbake til de tre første substrings fra ‘Uttrykk’ argument, ville dette være 3., Hvis du ikke angir dette argumentet, standard er -1, som returnerer alle substrings.
- Sammenligne: Dette er et valgfritt argument. Her kan du spesifisere hvilken type sammenligningen du vil SPLIT-funksjonen til å utføre når du evaluerer substrings. Følgende alternativer er tilgjengelig:
- Når Sammenlign 0: Dette er en Binær sammenligning. Dette betyr at hvis skilletegnet er en tekststreng (la oss si ABC), da dette ville være mellom store og små bokstaver. ‘ABC’ ville ikke være lik ‘abc’.
- Når Sammenlign er 1: Dette er en Tekst sammenligningen., Dette betyr at hvis skilletegnet er en tekststreng (la oss si ABC), så selv om du har ‘abc’ i ‘Uttrykk’ string, det ville bli betraktet som et skilletegn.
Nå som vi har dekket det grunnleggende av SPLITT-funksjon, la oss se på noen praktiske eksempler.
Eksempel 1 – Delt Ordene i en Setning
Tenk om jeg har teksten – «The Quick Brown Fox Hopp Over Lat Hund».
jeg kan bruke SPLIT-funksjonen for å få hvert ord i denne setningen inn som et nytt element i en matrise.,
nedenfor kode ville til dette:
Sub SplitWords()Dim TextStrng As StringDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result() = Split(TextStrng)End Sub
Mens koden gjør noe nyttig, det vil hjelpe deg til å forstå hva Split funksjonen i en VBA gjør.
Split-funksjonen deler tekststreng og gir hvert ord i Følge tabellen.
Så i dette tilfellet er:
- – Resultat(0) lagrer value «»
- Følge(1) lagrer verdien «Rask»
- Resultat(2) lagrer verdien «Brun» og så videre.
I dette eksemplet, vi har bare angitt det første argumentet – som er at teksten skal være delt., Siden ingen skilletegn som har blitt spesifisert, det tar plass karakter som standard skilletegn.
nb:
- VBA-SPLIT-funksjonen returnerer en matrise som starter fra base 0.
- Når resultatet av SPLITT-funksjon som er tilordnet til en matrise, som matrise må være erklært som en String datatype. Hvis du erklærer det som en Variant av data type, vil det vise en type mismatch). I eksempelet ovenfor, merk at jeg har erklært Resultat() som en String datatype.,
Eksempel 2 – Telle Antall Ord i en Setning
Du kan bruke SPLIT-funksjonen for å få det totale antallet ord i en setning. Trikset her er å telle antall elementer i tabellen som du får når du deler teksten.
nedenfor kode ville vise en meldingsboks med word count:
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
I dette tilfellet, UBound-funksjonen forteller oss at den øvre grense for matrisen (dvs. maksimalt antall elementer i tabellen har)., Siden bunnen av tabellen er 0, 1 er lagt til for å få det totale antall ord.
Du kan bruke en lignende koden for å lage en tilpasset funksjonen i en VBA-som vil ta den teksten som input og returnerer ord teller.
nedenfor kode vil opprette denne funksjonen:
Når du har opprettet, kan du bruke WordCount fungere akkurat som alle andre vanlige funksjoner.
Denne funksjonen håndterer også ledende, etterfølgende og doble mellomrom mellom ord. Dette har blitt gjort mulig ved hjelp av TRIM-funksjonen i en VBA-kode.,
I tilfelle du ønsker å lære mer om hvordan fungerer denne formelen til å telle antall ord i en setning eller ønsker å lære om en ikke-VBA formel måte å få ord teller, sjekk ut denne opplæringen.
Eksempel 3 – ved Hjelp av et Skilletegn Andre enn Mellomrom
I de to foregående eksemplene, vi har bare brukt ett argument i SPLIT funksjon, og resten var standard argumenter.
Når du bruker et annet skilletegn, må du angi at i SPLIT formel.,
I under kode, SPLITT funksjonen returnerer en matrise som er basert på et komma som skilletegn, og viser en melding med hvert ord i en separat linje.
I koden ovenfor, jeg har brukt For Neste loop for å gå gjennom hvert element i ‘Resultat’ array tilordne den til ‘DisplayText’ variabel.
Eksempel 4 – Dele en Adresse inn i tre deler
Med SPLITT-funksjon, kan du angi hvor mange tall av deler du ønsker å få. For eksempel, hvis jeg ikke angir noe, hver forekomst av skilletegn som skulle brukes til å splitte strengen.,
Men hvis jeg spesifisere 3 som grensen, så vil teksten deles opp i tre deler.
For eksempel, hvis jeg har følgende adresse:
2703 Winifred Way, Indianapolis, Indiana, 46204
jeg kan bruke Split funksjonen i en VBA-for å dele denne adressen inn i tre deler.
Den splitter de to første er basert på den komma som skilletegn og gjenværende del blir det tredje elementet i matrisen.,
nedenfor kode ville vise adressen i tre forskjellige linjer i en meldingsboks:
En av de praktiske anvendelser av dette kan være når du ønsker å dele en enkelt linje-adressen i formatet som vises i meldingen boksen. Deretter kan du opprette en egendefinert funksjon som returnerer adresse delt inn i tre deler (med hver del i en ny linje).
følgende kode vil gjøre dette:
Når du har denne koden i modulen, kan du bruke funksjonen (ThreePartAddress) i arbeidsboken akkurat som alle andre Excel-funksjonen.,
Denne funksjonen tar ett argument – cellen referanse som har adresse.
Merk at den resulterende adresse skal vises i tre forskjellige linjer, må du bruke bryt tekst format til cellene (det er i kategorien Hjemme i Justering-gruppen). Hvis » Pakk Tekst-format er ikke aktivert, vil du se hele adressen som en enkelt linje.
Eksempel 5 – Få By Navn fra Adresse
Med Split-funksjonen i en VBA, kan du angi hvilken del av den resulterende matrisen du ønsker å bruke.,
For eksempel, tenk at jeg dele følgende adresse basert på komma som skilletegn:
2703 Winifred Way, Indianapolis, Indiana, 46204
Den resulterende matrisen vil se omtrent som vist nedenfor:
{"2703 Winifred Way", "Indianapolis", "Indiana", "46204"}
Siden dette er en array, jeg kan velge å vise eller gå tilbake til en bestemt del av denne matrisen.
Nedenfor er en kode for en tilpasset funksjon, der du kan angi et tall, og det vil gå tilbake som element fra tabellen. For eksempel, hvis jeg vil ha den statlige navn, kan jeg spesifisere 3 (som er det tredje elementet i matrisen).,
De ovennevnte funksjon som tar to argumenter, cellereferanse som har adresse og element nummer du ønsker å returnere. Split-funksjonen deler adressen elementer og tilordner den til Resultatet variabelt.
Deretter går den tilbake til element nummer som du har angitt som andre argument. Merk at siden base er 0, ElementNumber-1 brukes til å returnere den riktige delen av adressen.
I tilfelle du vil navnet på byen, kan du bruke 2 som andre argument. I tilfelle du bruke et nummer som er høyere enn det totale antallet elementer, det ville returnere #VERDI! feil.
Du kan ytterligere forenkle koden som vist nedenfor:
I koden ovenfor, i stedet for å bruke Resultatet variabel, er det bare returnerer den angitte element nummer.
Så hvis du har Delt(«God Morgen»)(0), ville det bare gå tilbake til det første elementet, som er «God».,
på samme måte i koden ovenfor er det bare returnerer den angitte element nummer.
Du Kan Også Gjerne Følgende Excel-Tutorials:
- Excel VBA InStr Funksjon – Forklart med Eksempler.
- Hvordan å Sortere Data i Excel ved hjelp av VBA (EN Trinn-for-Trinn-Guide).
- 7 Fantastiske Ting Excel-Tekst til Kolonner Kan Gjøre For Deg.
- Hvordan å Få det antall Ord i Excel.
- VBA-TRIM-Funksjonen.