VBA Split String into Array | Paano Hatiin ang String sa Array sa Excel VBA?

Ang Excel VBA Split String sa Array

Ang isang string ay isang koleksyon ng mga character na sumali nang sama-sama, kapag ang mga character na ito ay nahahati at nakaimbak sa isang variable pagkatapos ang variable na iyon ay nagiging isang array para sa mga character na ito at ang pamamaraan na ginagamit namin upang hatiin ang isang string upang gawing isang array ay sa pamamagitan ng paggamit ng SPLIT function sa vba kung saan hinahati ang string sa isang isang dimensional na string.

Tulad ng mga worksheet sa VBA din mayroon kaming mga pagpapaandar upang harapin ang mga halaga ng String o Text. Masyado kaming pamilyar sa mga pagpapatakbo ng string tulad ng pagkuha ng pangalan ng firs, apelyido, gitnang pangalan, atbp. Ngunit paano ang tungkol sa ideya ng paghahati ng halaga ng string sa mga arrays sa VBA? Oo, narinig mong tama na maaari naming hatiin ang string na pangungusap sa array sa pamamagitan ng paggamit ng VBA coding at sa espesyal na artikulong ito, ipapakita namin sa iyo kung paano hatiin ang string sa isang array sa Excel VBA.

Ano ang Split String sa isang Array?

Hayaan mong linawin ko muna ito, ang "String into Array" ay walang iba kundi ang "iba't ibang mga bahagi ng pangungusap o string ay nahahati sa maraming bahagi". Halimbawa, kung ang pangungusap ay "Bangalore ay ang kabiserang lungsod ng Karnataka" kung gayon ang bawat salita ay magkakaibang hanay.

Kaya, kung paano hatiin ang pangungusap na ito sa array ay ang paksa ng artikulong ito.

Paano Mag-convert ng Split String sa isang Array sa Excel VBA?

Upang mai-convert ang split string sa isang array sa VBA mayroon kaming isang function na tinatawag na "SPLIT". Ito ay isang pagpapaandar ng VBA na gumaganap ng gawain ng paghahati ng naibigay na halaga ng string sa iba't ibang bahagi batay sa ibinigay na delimiter.

Halimbawa, kung ang pangungusap ay "Bangalore ay ang kabiserang lungsod ng Karnataka" ang puwang ang tagapaghatid sa pagitan ng bawat salita.

Nasa ibaba ang syntax ng pagpapaandar ng SPLIT.

  • Halaga o Pagpapahayag: Ito ang halaga ng string o teksto na sinusubukan naming i-convert sa array sa pamamagitan ng paghihiwalay ng bawat bahagi ng string.
  • [Delimiter]: Ito ay walang iba kundi ang mga karaniwang bagay na pinaghihiwalay ang bawat salita sa string. Sa aming pangungusap na "Bangalore ay ang kabiserang lungsod ng Karnataka" bawat salita na pinaghihiwalay ng character na espasyo kaya ang aming delimiter ay puwang dito.
  • [Limitahan]: Ang limitasyon ay wala ngunit kung gaano karaming mga bahagi ang nais namin bilang isang resulta. Para sa isang halimbawa sa pangungusap na "Bangalore ay ang kabiserang lungsod ng Karnataka" mayroon kaming pitong bahagi kung kailangan lamang namin ng tatlong bahagi pagkatapos makukuha natin ang unang bahagi bilang "Bangalore", ang pangalawang bahagi bilang "ay" at pangatlong bahagi bilang natitirang bahagi ng ang pangungusap ibig sabihin "ang kabiserang lungsod ng Karnataka".
  • [Ihambing]: Hindi ito ginagamit 99% ng oras, kaya't huwag natin itong hawakan sa puntong ito ng oras.
Maaari mong i-download ang VBA Split String na ito sa Array Excel Template dito - VBA Split String sa Array Excel Template

Halimbawa # 1

Ok, ngayon tingnan natin ang mga praktikal na halimbawa.

Hakbang 1: Tukuyin ang variable ng VBA upang hawakan ang halaga ng string.

Code:

 Sub String_To_Array () Dim StringValue Bilang String End Sub 

Hakbang 2: Para sa variable na ito italaga ang string na "Bangalore ay ang kabiserang lungsod ng Karnataka".

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnatka" End Sub 

Hakbang 3: Susunod na tukuyin ang isa pang variable na maaaring humawak sa bawat bahagi ng halagang string sa itaas. Sa ito kailangan nating tandaan dito dahil ang pangungusap ay may higit sa isang salita na kailangan namin upang tukuyin ang variable bilang "Array" upang humawak ng higit sa isang halaga.

Sa kasong ito, mayroon kaming 7 mga salita sa string kaya, tukuyin ang array tulad ng sumusunod.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnatka" Dim SingleValue () Bilang String End Sub 

Ngayon para sa variable na ito ng array, gagamitin namin ang pagpapaandar ng SPLIT upang hatiin ang string sa isang array sa Excel VBA.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnataka" Dim SingleValue () Bilang String SingleValue = Split (StringValue, "") End Sub 

Ang ekspresyon ay ang aming halaga ng string ibig sabihin, ang variable ay may hawak na halaga ng string kaya ipasok lamang ang variable na pangalan.

Ang delimiter sa string na ito ay space character kaya't magkakaloob ng pareho.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnataka" Dim SingleValue () Bilang String SingleValue = Split (StringValue, "") End Sub 

Tulad ng ngayon ay iwanan ang iba pang mga bahagi ng pagpapaandar ng SPLIT.

Hinahati ng pagpapaandar ng SPLIT ang halaga ng string sa 7 piraso bawat salita na pinaghiwalay sa gastos ng character na space. Dahil idineklara namin ang variable "SingleValue" bilang array maaari nating italaga ang lahat ng 7 mga halaga sa variable na ito.

Maaari naming isulat ang code tulad ng sumusunod.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnataka" Dim SingleValue () Bilang String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub 

Patakbuhin ang code at tingnan kung ano ang nakukuha namin sa kahon ng mensahe.

Tulad ng ngayon, maaari naming makita ang unang salita ibig sabihin "Bangalore" upang ipakita ang karagdagang mga salita na maaari naming isulat ang code tulad ng sumusunod.

Code:

 Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnataka" Dim SingleValue () Bilang String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine & SingleValue (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub 

Patakbuhin ngayon ang code at tingnan kung ano ang nakukuha namin sa kahon ng mensahe.

Ang bawat isa sa bawat salita ay nahati sa mga arrays.

Halimbawa # 2

Ngayon isipin ang isang sitwasyon ng pag-iimbak ng mga halagang ito sa mga cell ie bawat salita sa isang hiwalay na cell. Para sa mga ito, kailangan naming isama ang PARA SA Susunod na loop sa VBA.

Ang code sa ibaba ay magpapasok ng bawat salita sa magkakahiwalay na mga cell.

 Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore ay ang kabiserang lungsod ng Karnataka" Dim SingleValue () Bilang String SingleValue = Split (StringValue, "") Dim k As Integer For k = 1 To 7 Cells (1, k) .Value = SingleValue (k - 1) Susunod k End Sub 

Ipapasok nito ang bawat salita tulad ng ipinakita sa larawan sa ibaba.

Bagay na dapat alalahanin

  • Ang Array at mga loop ay ginagamit nang magkasama upang gawing pabago-bago ang code.
  • Ang pagpapaandar ng SPLIT ay nangangailangan ng karaniwang delimiter na naghihiwalay sa bawat salita sa pangungusap.
  • Ang haba ng Array ay nagsisimula mula sa zero, hindi mula sa 1.