Excel VBA StrComp funkcija
VBA StrComp ir iebūvēta funkcija, ko izmanto, lai salīdzinātu, vai divas virknes vērtības ir vienādas vai nē. Tomēr rezultāti netiek noklusēti kā PATIESI vai PATIESI, tāpat kā darblapā, drīzāk tie ir atšķirīgi.
Pirms mēs skatāmies rezultātus, ļaujiet man vispirms parādīt StrComp funkcijas sintaksi.

- 1. virkne: 1. virkne ir pirmā virkne vai vērtība, kuru mēs salīdzinām.
- 2. virkne: 2. virkne ir otrā virkne vai vērtība, kuru mēs salīdzinām ar 1. virkni .
- Salīdziniet: šeit mēs varam piegādāt trīs iespējas.
-
-
- 0 = Binārais salīdzinājums. Tas veic reģistrjutīgus aprēķinus. Piemēram, “Hello” nav vienāds ar “HELLO”, jo abi vārdi ir atšķirīgi. Šī ir noklusējuma vērtība, ja ignorējat šo parametru. vbBinaryCompare
- 1 = Teksta salīdzinājums. Šī opcija veic aprēķinus, kas nav reģistrjutīgi. Piemēram, “Hello” ir vienāds ar “HELLO” notikumu, lai gan abi vārdi ir atšķirīgi. vbTextCompare
- 2 = Piekļuve salīdzināšanai. Tas veic datu bāzes salīdzināšanu.
-
Stīgu salīdzināšanas (StrComp) funkcijas rezultāti
Kā es teicu, kad darblapā salīdzinām divas vērtības, rezultāts tiek iegūts kā PATIESA vai PATIESA. Bet, izmantojot VBA virkņu salīdzināšanas funkciju, rezultāti nav vienādi.
- Mēs iegūstam nulli (0), kad 1. virkne ir vienāda ar 2. virkni.
- Mēs saņemam vienu (1), kad 1. virknes vērtība ir lielāka par 2. virknes vērtību .
- Mēs iegūstam mīnus viens (-1), ja 1. virknes vērtība ir mazāka par 2. virkni
- Mēs saņemam NULL, kad 1. virknes vai 2. virknes vērtība ir NULL.

VBA StrComp funkcijas izmantošanas piemēri
1. piemērs
Sāksim ar vienkāršu piemēru. Piemēram, mēs salīdzināsim divas vērtības, ti, “Excel VBA” un “Excel VBA”.
Kods:
Sub StrComp_Example1 () Dim FirstValue kā virkne 'Lai saglabātu 1. virknes vērtību Dim SecondValue kā virkne' Uzglabāt 2. virknes vērtību Dim Result As virkne 'Saglabāt StrComp formulas rezultātu FirstValue = "Excel VBA"' Piešķirt 1. virknes vērtību SecondValue = "Excel VBA" 'Piešķirt 2. virknes vērtību Rezultāts = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Lietot StrComp funkciju MsgBox Rezultāts 'Parādīt rezultātu ziņojumu lodziņā Beigu apakšdaļa
Kad es palaidīšu šo kodu, mēs iegūsim nulli (0) kā rezultātu, jo gan 1., gan 2. virknes vērtības ir vienādas.

2. piemērs
Tagad es mainīšu divu vārdu reģistrus.
1. virkne = Excel Vba
2. virkne = Excel VBA
Kods:
Sub StrComp_Example2 () Dim FirstValue kā virkne 'Lai saglabātu 1. virknes vērtību Dim SecondValue kā virkne' Lai saglabātu 2. virknes vērtību Dim Result As virkne 'Saglabāt StrComp formulas rezultātu FirstValue = "Excel Vba"' Piešķirt 1. virknes vērtību SecondValue = "Excel VBA" 'Piešķirt 2. virknes vērtību Rezultāts = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Lietot StrComp funkciju MsgBox Rezultāts 'Parādīt rezultātu ziņojumu lodziņā Beigas apakšdaļa
Kad es palaidīšu šo kodu, mēs saņemsim 1, jo, tā kā mēs salīdzināšanas argumentu piegādājām kā “ vbBinaryCompare”, tas pārbaudīs, vai rakstzīmes ir reģistrjutīgas.

Tagad es mainīšu opciju Salīdzināt no “ vbBinaryCompare” uz “ vbTextCompare”
Kods:
Sub StrComp_Example3 () Dim FirstValue kā virkne 'Lai saglabātu 1. virknes vērtību Dim SecondValue kā virkne' Uzglabāt 2. virknes vērtību Dim Result As virkne 'Saglabāt StrComp formulas rezultātu FirstValue = "Excel Vba"' Piešķirt 1. virknes vērtību SecondValue = "Excel VBA" 'Piešķirt 2. virknes vērtību Rezultāts = StrComp (FirstValue, SecondValue, vbTextCompare)' Lietot StrComp funkciju MsgBox Rezultāts 'Parādīt rezultātu ziņojumu lodziņā Beigas apakšdaļa
Izmantojot šo salīdzinājumu, mēs saņemsim nulli (0), jo vbaTextCompare ignorē reģistrjutīgos vārdus.

3. piemērs
VBA StrComp piemēru izpēte ar IF nosacījumiem
Pieņemsim, ka jums ir tādi dati kā zemāk redzamajā attēlā.

Mums ir nepieciešams, lai salīdzinātu String 1 ar String 2 un nonāktu pie rezultāta , jo "Exact", ja abi ir vienādi, cits rezultāts būtu "Not Exact".
Zemāk redzamais kods padarīs darbu mūsu vietā.
Kods:
Sub StrComp_Example4 () Dim rezultāts kā virkne Dim I kā vesels skaitlis i = 2 līdz 6 Rezultāts = StrComp (šūnas (i, 1). Vērtība, šūnas (i, 2). Vērtība) Ja rezultāts = 0, tad šūnas (i, 3 ) .Value = "Precīzi" citas šūnas (i, 3) .Value = "Nav precīzi" Beigas, ja nākamās i beigas
Kad es izpildīšu iepriekš minēto VBA kodu programmā Excel, mēs iegūsim šādu rezultātu.

Ja paskatās C4 šūnu String 1 un String 2 ir vienādi, bet varoņi ir reģistrjutīgi, tāpēc rezultāts ir "Not Exact". Lai pārvarētu šo problēmu, mums jāpievieno Salīdzināt kā vbTextCompare.
Zemāk ir modificēts kods, lai iegūtu rezultātu “Precīzs” C4 šūnai.
Kods:
Sub StrComp_Example4 () Dim rezultāts kā virkne Dim I kā vesels skaitlis i = 2 līdz 6 rezultāts = StrComp (šūnas (i, 1). Vērtība, šūnas (i, 2). Vērtība, vbTextCompare) Ja rezultāts = 0, tad šūnas (i , 3). Vērtība = "Precīza" citas šūnas (i, 3). Vērtība = "Nav precīza" Beigas, ja nākamās i beigas
Šis kods atgriezīs zemāk redzamo rezultātu.
