VBA StrComp - Izmantojot StrComp funkciju, salīdziniet VBA virknes

Satura rādītājs

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.

Interesanti raksti...