VBA StrComp | Paghambingin ang Mga string sa VBA gamit ang StrComp Function
Pag-andar ng Excel VBA StrComp
VBA StrComp ay isang built-in na pagpapaandar na ginagamit upang ihambing kung ang dalawang halaga ng string ay pareho o hindi. Gayunpaman, ang mga resulta ay hindi na-default na TOTOO o MALI tulad ng worksheet sa halip ay naiiba ito.
Bago namin tingnan ang mga resulta hayaan mo akong ipakita sa iyo ang syntax ng StrComp function muna.
- String 1: Ang string 1 ay ang unang string o halagang inihahambing namin.
- String 2: Ang String 2 ay ang pangalawang string o halagang pinaghahambing namin String 1.
- Ihambing: Maaari kaming magbigay ng tatlong mga pagpipilian dito.
- 0 = Paghambingin ng Binary. Gumagawa ito ng mga sensitibong kalkulasyon ng kaso. Halimbawa ang "Hello" ay hindi katumbas ng "HELLO" dahil pareho ang mga salitang kaso na magkakaiba. Ito ang default na halaga kung balewalain mo ang parameter na ito. vbBinaryCompare
- 1 = Paghahambing ng Teksto. Ginagawa ng pagpipiliang ito ang mga kalkulasyong hindi sensitibo sa kaso. Halimbawa ang "Kamusta" ay katumbas ng "HELLO" na kaganapan kahit na ang parehong mga salitang kaso ay magkakaiba. vbTextCompare
- 2 = Paghambingin ang Pag-access. Nagsasagawa ito ng paghahambing ng database.
Mga Resulta ng Paghahambing sa String (StrComp) Function
Tulad ng sinabi ko kapag inihambing namin ang dalawang halaga sa worksheet nakukuha namin ang resulta bilang TUNAY o MALI. Ngunit sa VBA string paghahambing ng mga resulta ng pag-andar ay hindi pareho.
- Nakakuha kami ng zero (0) kailan String 1 ay katumbas ng String 2.
- Nakukuha namin ang isa (1) kapag ang String 1 ang halaga ay mas malaki kaysa sa String 2 Halaga.
- Nakakakuha tayo ng isang pag-isa (-1) kapag String 1 ang halaga ay mas mababa sa String 2
- Nakukuha namin ang Null kung kailan String 1 o String 2 ang halaga ay Null.
Mga halimbawa upang magamit ang VBA StrComp Function
Maaari mong i-download ang VBA StrComp Excel Template dito - VBA StrComp Excel TemplateHalimbawa # 1
Magsimula tayo sa isang simpleng halimbawa. Halimbawa, ihahambing namin ang dalawang halaga hal. "Excel VBA" at "Excel VBA".
Code:
Sub StrComp_Example1 () Dim FirstValue Bilang String 'To Store String 1 halaga Dim SecondValue Bilang String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel VBA"' Assign the String 1 value SecondValue = "Excel VBA" 'Magtalaga ng String 2 halaga ng Resulta = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Ilapat ang pagpapaandar ng StrComp MsgBox Result 'Ipakita ang resulta sa kahon ng mensahe End Sub
Kapag pinatakbo ko ang code na ito makakakuha kami ng Zero (0) bilang resulta dahil pareho String 1 at String 2 ang mga halaga ay pareho.
Halimbawa # 2
Ngayon babaguhin ko ang mga kaso ng dalawang salita.
String 1 = Excel Vba
String 2 = Excel VBA
Code:
Sub StrComp_Example2 () Dim FirstValue Bilang String 'To Store String 1 halaga Dim SecondValue Bilang String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel Vba"' Assign the String 1 value SecondValue = "Excel VBA" 'Magtalaga ng String 2 halaga ng Resulta = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Ilapat ang pagpapaandar ng StrComp MsgBox Result 'Ipakita ang resulta sa kahon ng mensahe End Sub
Kapag pinatakbo ko ang code na ito makukuha natin 1 sapagkat mula nang ibigay namin ang Ihambing ang argumento bilang “vbBinaryCompare ” susuriin nito ang mga case character na sensitibo.
Ngayon babaguhin ko ang Ihambing pagpipilian mula sa "vbBinaryCompare ” sa “vbTextCompare ”
Code:
Sub StrComp_Example3 () Dim FirstValue Bilang String 'To Store String 1 halaga Dim SecondValue Bilang String' To Store String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel Vba"' Assign the String 1 value SecondValue = "Excel VBA" 'Magtalaga ng String 2 halaga ng Resulta = StrComp (FirstValue, SecondValue, vbTextCompare)' Ilapat ang pagpapaandar ng StrComp MsgBox Result 'Ipakita ang resulta sa kahon ng mensahe End Sub
Kasama nito Ihambing, makakakuha tayo ng zero (0) kasi vbaTextCompare hindi pinapansin ang mga sensitibong salita.
Halimbawa # 3
Pag-aaral ng Kaso ng VBA StrComp sa Kundisyon ng IF
Ipagpalagay na mayroon kang data tulad ng larawan sa ibaba.
Kailangan nating ihambing String 1 kasama si String 2 at dumating ang Resulta bilang "Eksakto" kung pareho ang pareho, ang ibang resulta ay dapat na "Hindi Eksakto".
Ang code sa ibaba ang gagawa ng trabaho para sa amin.
Code:
Sub StrComp_Example4 () Dim Result Bilang String Dim I Bilang Integer Para sa i = 2 To 6 Result = StrComp (Cells (i, 1) .Value, Cells (i, 2) .Value) Kung Resulta = 0 Pagkatapos ng Mga Cell (i, 3 ) .Value = "Exact" Iba Pang Mga Cell (i, 3) .Value = "Hindi Eksakto" Nagtatapos Kung Susunod i End Sub
Kapag pinatakbo ko ang nasa itaas na VBA code sa Excel makukuha namin ang resulta sa ibaba.
Kung titingnan mo ang C4 cell String 1 at String 2 pareho ngunit ang mga character ay sensitibo sa kaso, kaya ang resulta ay "Hindi Eksakto". Upang mapagtagumpayan ang isyung ito kailangan nating ibigay ang Paghambing bilang vbTextCompare.
Nasa ibaba ang binagong code upang makuha ang resulta bilang "Eksakto" para sa C4 cell.
Code:
Sub StrComp_Example4 () Dim Result Bilang String Dim I Bilang Integer Para sa i = 2 To 6 Result = StrComp (Cells (i, 1) .Value, Cells (i, 2) .Value, vbTextCompare) Kung Resulta = 0 Pagkatapos Mga Cell (i , 3) .Value = "Exact" Iba Pang Mga Cell (i, 3) .Value = "Hindi Eksakto" Nagtatapos Kung Susunod i End Sub
Ibabalik ng code na ito ang resulta sa ibaba.