VBA SubString | Paano Kumuha ng Substring gamit ang VBA Function?

Excel VBA SubString

Ang SubString ay isang bahagi ng string o bahagi o ang character ng string ay tinatawag na "SubString". Mayroong tatlong uri ng pagpapaandar ng substring sa VBA LEFT, RIGHT at MID pareho sila sa mga substring ng worksheet sa excel.

Ang isang string ay walang iba kundi ang isang serye ng mga character at character ay maaaring mga alpabeto, numero, espesyal na character, at pagsamahin din ang lahat ng ito.

Kadalasan ang mga oras sa excel kapag nagtatrabaho kami sa data na kung saan ay ang string na kailangan namin upang makuha lamang ang bahagi ng string upang mapabilis ang aming layunin. Maaaring hindi namin kailanganin ang buong string na gagamitin ngunit kailangan lamang namin ang bahagi ng string para sa aming paggamit. Halimbawa, kung mayroon kang pangalan na "Sachin Tendulkar" maaaring kailanganin mo lamang ang unang bahagi ng pangalan ibig sabihin ay "Sachin" lamang. Ito ay tinatawag na SubString ng string sa Excel VBA. Upang harapin ang mga string na ito mayroon kaming built-in na mga pag-andar sa ilalim ng pagpapaandar ng TEXT sa kategorya ng excel.

Sa artikulong ito, tatalakayin namin kung paano makukuha ang substring mula sa buong string sa VBA.

Paano Magamit ang Mga SubString Function sa VBA?

Upang makuha ang substring mula sa string mayroon kaming ilang mga built-in na pagpapaandar ng teksto at ang ilan sa mga mahahalagang pag-andar ay LEFT, RIGHT, INSTR at MID sa excel. Ang pagpapaandar Si Instr magsisilbing sumusuporta sa pagpapaandar para sa iba pang tatlong mga pagpapaandar.

Makikita natin kung paano gamitin ang mga pagpapaandar na ito upang makuha ang praktikal na mga substring. Basahin ang mga halimbawa sa ibaba upang maunawaan ang mga ito.

Maaari mong i-download ang VBA SubString Excel Template dito - VBA SubString Excel Template

Halimbawa # 1 - Paggamit ng Kaliwa Function

Kung mayroon kang buong pangalan bilang "Sachin Tendulkar" at kailangan mo lamang ang unang pangalan upang makuha bilang substring gamitin ang sumusunod na code upang makakuha ng pareho.

Hakbang 1: Lumikha ng isang pangalan ng macro at tukuyin ang dalawang variable bilang String.

Code:

 Sub SubString_Example1 () Madilim na FullName Bilang String Dim FirstName Bilang String End Sub 

Hakbang 2: Italaga ngayon ang pangalang "Sachin Tendulkar" sa variable Buong pangalan.

Code:

 Sub SubString_Example1 () Dim DimName Bilang String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub 

Hakbang 3: Ngayon ang variable Buong pangalan hawakan ang halaga ng "Sachin Tendulkar". Ngayon kailangan naming kunin ang excel VBA substring ng unang pangalan mula sa buong pangalan. Kaya, italaga ang halaga para sa variable Pangalan sa pamamagitan ng LEFT function.

Code:

 Sub SubString_Example1 () Madilim na FullName Bilang String Dim FirstName Bilang String FullName = "Sachin Tendulkar" FirstName = Kaliwa (End Sub 

Hakbang 4: VBA LEFT function na unang argument ay String, yan ang buong halaga o buong string. Sa halimbawang ito, ang aming buong halaga o string ay "Sachin Tendulkar" na nakatalaga sa variable Buong pangalan.

Kaya't variable ng supply Buong pangalan bilang pagtatalo.

Code:

 Sub SubString_Example1 () Madilim na FullName Bilang String Dim FirstName Bilang String FullName = "Sachin Tendulkar" FirstName = Left End Sub 

Hakbang 5: Ang susunod Ang pagtatalo ay kung gaano karaming mga character na kailangan namin mula sa string na aming ibinigay, kaya sa kasong ito, kailangan namin ng unang pangalan na "Sachin”Kaya lubos na kailangan namin 6 na character mula sa kaliwang bahagi.

Code:

 Sub SubString_Example1 () Madilim na FullName Bilang String Dim FirstName Bilang String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub 

Hakbang 6: Ipakita ngayon ang resulta sa isang kahon ng mensahe sa VBA.

Code:

 Sub SubString_Example1 () Madilim na FullName Bilang String Dim FirstName Bilang String FullName = "Sachin Tendulkar" FirstName = Kaliwa (FullName, 6) MsgBox FirstName End Sub 

Hakbang 7: Patakbuhin ang macro tingnan ang unang pangalan bilang isang substring sa kahon ng mensahe.

Halimbawa # 2 - Kumuha ng SubString mula sa Kanan

Tulad ng kung paano namin nakuha ang substring mula sa kaliwa nang katulad na maaari rin nating makuha mula sa kanan. Dalhin ang parehong pangalan bilang isang halimbawa.

Hakbang 1: Tukuyin ang dalawang variable bilang String.

Code:

 Sub SubString_Example2 () Dim DimName Bilang String Dim LastName Bilang String End Sub 

Hakbang 2: Tulad ng dati italaga ang halaga sa variable Buong pangalan bilang "Sachin Tendulkar"

Code:

 Sub SubString_Example2 () Malabo FullName Bilang String Dim LastName Bilang String FullName = "Sachin Tendulkar" End Sub 

Hakbang 3: Ngayon para sa variable Huling pangalan italaga ang halaga sa pamamagitan ng pag-andar ng KARAPATAN na excel.

Code:

 Sub SubString_Example2 () Madilim FullName Bilang String Dim LastName Bilang String FullName = "Sachin Tendulkar" LastName = Right (End Sub 

Hakbang 4: Ang string ay atin Buong pangalan kaya ibigay ang variable.

Code:

 Sub SubString_Example2 () Malabo FullName Bilang String Dim LastName Bilang String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub 

Hakbang 5: Ang haba ay kung gaano karaming mga character na kailangan namin mula sa kanang bahagi, kailangan namin 9 character mula sa kanang bahagi.

Code:

 Sub SubString_Example2 () Dim DimName Bilang String Dim LastName Bilang String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub 

Hakbang 6: Ipakita ang halagang ito sa kahon ng mensahe.

Code:

 Sub SubString_Example2 () Madilim FullName Bilang String Dim LastName Bilang String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName End Sub 

Hakbang 7: Patakbuhin ang macro makikita namin ang apelyido sa kahon ng mensahe.

Halimbawa # 3 - Paggamit ng Instr Function

Sa mga halimbawa sa itaas, mayroon lamang kaming isang pangalan at direkta naming naibigay kung gaano karaming mga character ang kailangan namin mula sa kaliwa at kanan. Ngunit sa kaso ng maraming mga pangalan ng character ng apelyido at apelyido ay hindi magkapareho, magkakaiba ito sa bawat pangalan. Sa mga kasong iyon, hindi namin maibigay nang direkta ang bilang ng mga character upang magamit namin ang pagpapaandar Si Instr.

Si Instr ibabalik ng pagpapaandar ang naibigay na posisyon ng character sa string. Para sa isang halimbawa tingnan ang code sa ibaba.

Code:

 Sub SubString_Example3 () Dim Position As String Position = InStr (1, "Sachin", "a") MsgBox Position End Sub 

InStr (1, "Sachin", "a") makikilala nito ang posisyon ng liham "A" bilang unang hitsura sa string "Sachin". Sa kasong ito sulat "A" nasa pangalawang posisyon. Kaya makakakuha kami ng 2 bilang resulta sa kahon ng mensahe.

Tulad nito, maaari nating gamitin ang Instr pagpapaandar upang hanapin ang karakter ng espasyo sa pagitan ng unang pangalan at apelyido.

Para sa isang halimbawa tingnan ang pangalan sa ibaba na mayroon ako sa excel sheet.

Gamit KALIWA, KANAN, at Instr maaari naming makuha ang mga substrings. Nasa ibaba ang code upang makuha ang Unang Pangalan.

Code:

 Sub FirstName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row Para sa K = 2 To LR Cells (K, 2). Value = Left (Cells (K, 1). Halaga, InStr (1, Mga Cell (K, 1). Halaga, "") - 1) Susunod na K End Sub 

Patakbuhin ang macro at tingnan ang unang pangalan bilang isang substring sa kahon ng mensahe.

Gumamit sa ibaba ng code upang makuha ang apelyido bilang isang substring.

Code:

 Sub LastName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row Para sa K = 2 To LR Cells (K, 3). Value = Right (Cells (K, 1) .Value, Len (Cells (K, 1)) - InStr (1, Cells (K, 1). Halaga, "")) Susunod na K End Sub 

Patakbuhin ang macro at makikita namin ang apelyido sa kahon ng mensahe.

Itinalaga ko ang macro button sa worksheet, i-download ang workbook, at gamitin ang mga ito.