VBA Split Function (Mga Halimbawa) | Paano Hatiin ang Mga String sa Excel VBA?

Ano ang VBA Split Function sa Excel?

Hatiin ang pagpapaandar sa VBA ay isang napaka kapaki-pakinabang na function ng string na ginagamit upang hatiin ang mga string sa maraming mga substring batay sa isang delimiter na ibinigay sa pagpapaandar at isang paraan ng paghahambing, may mga iba pang mga function ng string na nagko-convert ng isang string sa substring ngunit ang split function ay maaaring hatiin ang isang string sa higit sa isang substrings.

Sa normal na pag-andar na LEFT worksheet, ang mga pagpapaandar ng MID, at KARAPATAN sa excel ay ginagamit bilang mga pagpapaandar ng teksto sa excel upang makuha ang bahagi ng pangungusap. Halimbawa ng pagkuha ng apelyido, gitnang pangalan, at ang apelyido ay ang karaniwang mga senaryong nakita namin. Ngunit sa VBA mayroon kaming mas maraming nalalaman na pagpapaandar na tinatawag na SPLIT na gagawa ng isang katulad na trabaho para sa iyo. Ang SPLIT ay isang built-in na pagpapaandar sa Excel VBA na maaaring hatiin ang ibinigay na pangungusap batay sa delimiter. Halimbawa, kung nais mong hatiin ang email address sa iba't ibang bahagi ang karaniwang elemento sa email address ay "@" sa lahat ng mga email id's, kaya't ang "@" ay naging delimiter dito.

Pag-andar ng VBA Split String

Tulad ng lahat ng iba pang mga pagpapaandar na split ay mayroon ding sariling syntax. Nasa ibaba ang mga parameter ng pagpapaandar ng excel VBA Split string function.

  • Halaga o Pagpapahayag: Wala ito ngunit ang aktwal na halagang sinusubukan naming hatiin. Halimbawa, kung nais mong hatiin ang apelyido at apelyido, ang buong pangalan ang halaga dito.
  • [Delimiter]: Ano ang karaniwang elemento upang hatiin ang Halaga o Pagpapahayag? Sa email na "@" Id ay ang karaniwang elemento, sa address na comma (,) ang karaniwang elemento. Kung hindi mo ito pinapansin ay isinasaalang-alang nito ang character na puwang bilang default na halaga.
  • [Limitahan]: Ilan ang mga substring na gusto mo mula sa Halaga o Ekspresyong iyong ibinigay. Halimbawa, kung ang halaga ay "Ang pangalan ko ay Excel", kung magbibigay ka ng 3 bilang ang limitasyon ipapakita nito ang resulta sa tatlong mga linya tulad ng "Aking", "pangalan", "ay Excel".
  • [Ihambing]: Dahil hindi kami gumagamit ng paghahambing ng argument laktawan ang opsyonal na argument na ito.

Sa mga susunod na seksyon ng artikulo, makikita natin kung paano gamitin ang pagpapaandar ng SPLIT sa excel VBA nang praktikal.

Mga halimbawa ng VBA Split String Function

Nasa ibaba ang mga praktikal na halimbawa ng Split Function sa Excel VBA.

Maaari mong i-download ang Template ng VBA Split Function na Excel dito - VBA Split Function Excel Template

Halimbawa # 1 - Hatiin ang Pangungusap

Ibinahagi ng split ang resulta sa array na magsisimula mula sa 0. Ang lahat ng mga arrays ay nagsisimula mula sa 0 hindi mula sa 1.

Ipagpalagay na mayroon kang salitang "Ang Aking Pangalan ay Excel VBA" sa cell A1.

Ngayon nais mong hatiin ang pangungusap na ito sa mga piraso tulad ng "Aking", "Pangalan", "ay", "Excel", "VBA". Gamit ang pagpapaandar ng Excel VBA SPLIT String maaari naming ibalik ang resulta na ito.

Hakbang 1: Simulan ang macro sa pangalan.

Code:

 Sub Split_Example1 () End Sub  Hakbang 2: Ipahayag ang tatlong mga variable.

Code:

 Sub Split_Example1 () Dim Ang AkingTeksto Bilang String Dim i Bilang Integer Dim MyResult () Bilang String End Sub 

Hakbang 3: Ngayon para sa tinukoy na variable, ang Aking Teksto ay nagtatalaga ng salita "Ang Aking Pangalan ay Excel VBA".

Code:

 Sub Split_Example1 () Madilim ang MyText Bilang String Dim i Bilang Integer Dim MyResult () Bilang String MyText = "Ang Aking Pangalan ay Excel VBA" End Sub 

Hakbang 4: Ngayon para sa variable na Aking Resulta mag-apply ng VBA split string function.

Code:

 Sub Split_Example1 () Madilim ang MyText Bilang String Dim i Bilang Integer Dim MyResult () Bilang String MyText = "My Name is Excel VBA" MyResult = Split (End Sub 

Hakbang 5: Ang pagpapahayag ay ang aming halaga sa teksto. Dahil naitalaga na namin ang aming halaga ng teksto sa variable na Aking Teksto ipasok ang argumento dito.

Code:

 Sub Split_Example1 () Madilim ang MyText Bilang String Dim i Bilang Integer Dim MyResult () Bilang String MyText = "My Name is Excel VBA" MyResult = Split (MyText) End Sub 

Tandaan: Tulad ng sa ngayon huwag pansinin ang lahat ng iba pang mga parameter.

Hakbang 6: Kaya't hawak na ng Aking Resulta ang hating resulta na ito. Tulad ng sinabi ko kanina sa post, ang split function ay nag-iimbak ng resulta bilang isang array kaya dito

  • Ang Aking Resulta (0) = "Aking"
  • Ang Aking Resulta (1) = "Pangalan"
  • Ang Aking Resulta (2) = "ay"
  • Ang Aking Resulta (3) = "Excel"
  • Ang Aking Resulta (4) = "VBA"

Kahit na ang code na ito ay hindi gumawa ng anumang epekto upang simulan ang pagpapaandar ng SPLIT maaari naming gamitin ang code na ito.

Halimbawa # 2 - VBA SPLIT String na may UBOUND Function

Upang maiimbak ang resulta ng pagpapaandar ng SPLIT, maaari naming gamitin ang pagpapaandar ng vba UBOUND kasama ang pagpapaandar ng SPLIT.

Ibabalik ng UBOUND ang maximum na haba ng array. Sa halimbawa sa itaas, ang maximum na haba ng array ay 5.

Dalhin ang parehong salitang "Ang Aking Pangalan ay Excel VBA". Hatiin natin ang salitang ito at iimbak mula sa cell A1 pasulong.

Hakbang 1: Magpatuloy tayo mula sa kung saan tayo tumigil sa nakaraang halimbawa.

Hakbang 2: Mag-apply ngayon PARA SA SUSUNOD NA LOOP sa VBA mula 0 hanggang sa maximum na haba ng array ibig sabihin, UBOUND.

Ang dahilan kung bakit nagsimula kami mula sa zero dahil iimbak ng SPLIT ang resulta mula sa zero, hindi mula sa 1.

Hakbang 3: Mag-apply ngayon ng pag-aari ng VBA CELLS at iimbak ang resulta.

Code:

Mga Cell (i + 1, 1). Halaga = MyResult (i)

Hakbang 4: Patakbuhin ang code na ito, magkakaroon kami ng mga split na halaga.

Kumpletuhin ang Code:

 Sub Split_Example1 () Madilim ang MyText Bilang String Dim i Bilang Integer Dim MyResult () Bilang String MyText = "Ang Aking Pangalan ay Excel VBA" MyResult = Split (MyText) Para sa i = 0 To UBound (MyResult) Cells (i + 1, 1) .Value = MyResult (i) Susunod i End Sub 

Bumalik Bilang ng Salita

Maaari rin naming ipakita ang kabuuang bilang ng mga salita sa ibinigay na halaga. Gamitin ang code sa ibaba upang maipakita ang kabuuang bilang ng mga bilang ng salita. Code:

 Sub Split_Example2 () Madilim ang MyText Bilang String Dim i As Integer Dim MyResult () Bilang String MyText = "My Name is Excel VBA" MyResult = Split (MyText) i = UBound (MyResult ()) + 1 MsgBox "Total Words Count is" & i End Sub 

Kopyahin at i-paste ang nasa itaas na VBA code at patakbuhin ito, ibabalik ng mensahe box ang resulta.

Bagay na dapat alalahanin

  • Kung ang delimiter ay hindi ibinigay ng SPLIT awtomatikong iniisip ang delimiter bilang puwang.
  • Kung nais mong hatiin maliban sa espasyo pagkatapos ay kailangan mong tukuyin ang delimiter sa mga dobleng quote.
  • Iniimbak ng SPLIT ang resulta bilang mga resulta sa array.
  • Ibinabalik ng pagpapaandar ng UBOUND ang maximum na haba ng array.