Paghahambing ng VBA String | Paano Paghambingin ang Dalawang Mga Halaga ng String?

Paghahambing sa String ng VBA ng Excel

Upang ihambing ang dalawang mga string sa VBA mayroon kaming built-in na pag-andar ibig sabihin ay "StrComp". Mababasa natin ito bilang "Paghahambing sa String", Ang pagpapaandar na ito ay magagamit lamang sa VBA at hindi magagamit bilang isang pagpapaandar ng worksheet. Kinukumpara nito ang anumang dalawang mga string at ibabalik ang mga resulta bilang "Zero (0)" kung ang parehong mga string ay tumutugma at kung ang parehong mga naibigay na mga string ay hindi tumutugma sa gayon makukuha namin "Isa (1)" bilang resulta.

Sa VBA o excel, nahaharap namin ang maraming iba't ibang mga sitwasyon isang tulad ng senaryo ay "paghahambing ng dalawang halaga ng string". Sa isang regular na worksheet, magagawa natin ang maraming paraan na ito, ngunit sa VBA paano mo ito magagawa?

Nasa ibaba ang syntax ng pagpapaandar na "StrComp".

Una, dalawang argumento ay medyo simple,

  • para sa String 1 kailangan nating ibigay kung ano ang unang halaga na inihahambing namin at
  • para sa String 2 kailangan nating ibigay kung ano ang ikalawang halaga na inihahambing namin.
  • [Ihambing] ito ang opsyonal na argument ng pagpapaandar ng StrComp. Nakatutulong ito kapag nais naming ihambing ang paghahambing ng sensitibo sa kaso. Halimbawa sa argument na ito "Ang Excel" ay hindi katumbas ng "EXCEL" dahil ang parehong mga salitang ito ay sensitibo sa kaso.

Maaari kaming magbigay ng tatlong mga halaga dito.

  • Zero (0) para sa “Paghambingin ng Binary"Ibig sabihin, ang" Excel "ay hindi katumbas ng" EXCEL ". Para sa case na sensitibong paghahambing maaari kaming magbigay ng 0.
  • Isa (1) para sa “Paghambingin sa Teksto"Ibig sabihin, ang" Excel "ay katumbas ng" EXCEL ". Ito ay isang paghahambing sa sensitibong hindi pang-kaso.
  • Dalawa (2) lamang ito para sa paghahambing ng database.

Ang mga resulta ng pagpapaandar na "StrComp" ay hindi nag-default TUNAY o MALI ngunit magkakaiba. Nasa ibaba ang iba't ibang mga resulta ng pagpapaandar na "StrComp".

  • Kukunin namin “0” bilang resulta kung tumutugma ang mga naibigay na mga string.
  • Kukunin namin “1” kung ang naibigay na mga string ay hindi tumutugma at sa kaso ng pagtutugma sa bilang, makakakuha kami ng 1 kung ang String 1 ay mas malaki kaysa sa string 2.
  • Kukunin namin “-1” kung ang numero ng string 1 ay mas mababa sa string 2 na numero.

Paano Magsagawa ng Paghahambing sa String sa VBA?

Maaari mong i-download ang VBA String Comparison Excel Template dito - VBA String Comparison Excel Template

Halimbawa # 1

Tutugma kami sa “Bangalore"Laban sa string na"BANGALORE”.

Una, ideklara ang dalawang variable ng VBA bilang string upang mag-imbak ng dalawang halaga ng string.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String End Sub 

Para sa dalawang variable na ito, mag-imbak ng dalawang halaga ng string.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" End Sub 

Ngayon ideklara ang isa pang variable upang maiimbak ang resulta ng "StrComp”Pagpapaandar.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String End Sub 

Para sa variable na ito buksan ang pagpapaandar na "StrComp".

Code:

Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (End Sub 

Para sa "String1" at "String2" nakatalaga na kami ng mga halaga sa pamamagitan ng mga variable, kaya ipasok ang mga variable na pangalan ayon sa pagkakabanggit.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, End Sub 

Ang huling bahagi ng pagpapaandar ay "Paghambingin" para sa mapiling ito "VbTextCompare".

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) End Sub 

Ngayon ipakita ang "Huling Resulta" variable sa kahon ng mensahe sa VBA.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub 

Ok, patakbuhin natin ang code at tingnan ang resulta.

Output:

Dahil pareho ang mga string na "Bangalore" at "BANGALORE" ay pareho nakuha namin ang resulta bilang 0 ibig sabihin ay pagtutugma. Ang parehong mga halaga ay sensitibo sa kaso dahil naibigay namin ang argumento bilang "VbTextCompare" binalewala nito ang case na sensitibo sa pagtutugma at tumutugma lamang sa mga halaga, kaya pareho ang mga halaga at ang resulta ay 0 ibig sabihin TOTOO.

Code:

 Sub String_Comparison_Example1 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Halimbawa # 2

Para sa parehong code, babaguhin namin ang paraan ng paghahambing mula sa "VbTextCompare" sa "VbBinaryCompare".

Code:

 Sub String_Comparison_Example2 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub 

Patakbuhin ngayon ang code at tingnan ang resulta.

Output:

Kahit na pareho ang mga string ay pareho nakuha namin ang resulta bilang 1 ibig sabihin ay Hindi Pagtutugma dahil inilapat namin ang paraan ng paghahambing bilang "VbBinaryCompare" na pinaghahambing ang dalawang halaga bilang sensitibo sa kaso.

Halimbawa # 3

Ngayon makikita natin kung paano ihambing ang mga halagang may bilang. Para sa parehong code, magtatalaga kami ng iba't ibang mga halaga.

Code:

 Sub String_Comparison_Example3 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = 500 Value2 = 500 Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub 

Parehong ang mga halaga ay 500 at makakakuha kami ng 0 bilang resulta dahil ang parehong mga halaga ay naitugma.

Output:

Ngayon ay babaguhin ko ang numero ng Value1 mula 500 hanggang 100.

Code:

 Sub String_Comparison_Example3 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub 

Patakbuhin ang code at tingnan ang resulta.

Output:

Alam namin na ang Value1 at Value2 ay hindi pareho ngunit ang resulta ay -1 sa halip na 1 sapagkat para sa paghahambing sa bilang kapag ang halaga ng String 1 ay mas malaki kaysa sa String 2 makukuha natin ang -1.

Code:

 Sub String_Comparison_Example3 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub 

Ngayon ay ibabaliktad ko ang mga halaga.

Code:

 Sub String_Comparison_Example3 () Dim Value1 Bilang String Dim Value2 Bilang String Value1 = 500 Value2 = 1000 Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub 

Patakbuhin ang code at tingnan ang resulta.

Output:

Hindi ito espesyal kung hindi tugma makakakuha kami ng 1 lamang.

Mga Bagay na Dapat Tandaan

  • Ang [Paghambingin] na argument ng "StrComp" ay opsyonal ngunit sa kaso ng case na sensitibong tugma maaari naming itong magamit at ang pagpipilian ay "VbBinaryCompare".
  • Ang resulta ng mga halagang bilang ayon sa numero ay bahagyang naiiba kung sakaling ang String 1 ay mas malaki kaysa sa String 2 at ang resulta ay -1.
  • Ang mga resulta ay 0 kung naitugma at 1 kung hindi naitugma.