Teksta atrašana virknē (funkcija INSTR) - VBA koda piemēri

Funkcija INSTR

Funkcija VBA pārbauda, ​​vai citā teksta virknē ir atrodama teksta virkne. Ja teksts netiek atrasts, tas atgriež 0. Pretējā gadījumā tas atgriež rakstzīmes pozīciju, kurā tiek atrasts teksts.

Veic funkciju Instr precīzi sērkociņi. Tā vietā var izmantot VBA līdzīgu operatoru, lai veiktu neprecīzas atbilstības / modeļu saskaņošanu, izmantojot aizstājējzīmes.

Instr piemērs

Šis koda fragments meklē virkni “Skaties šajā virknē”, meklējot vārdu “Skatīties”. Funkcija Instr atgriež 1, jo teksts ir atrodams pirmajā pozīcijā.

123 Sub FindSomeText ()MsgBox InStr ("Skatīties šajā virknē", "Skatīties")Beigu apakš

Šis otrais piemērs atgriež 7, jo teksts ir atrodams, sākot ar 7. pozīciju:

123 Sub FindSomeText2 ()MsgBox InStr ("Neskaties šajā virknē", "Paskaties")Beigu apakš

Svarīgs! Funkcija Instruments ir reģistrjutīga pēc noklusējuma. Tas nozīmē, ka “izskats” nesakritīs ar “Izskats”. Lai testa reģistrjutīgums būtu nejutīgs, izlasiet tālāk.

Instr. Sintakse

Funkcijas Instr sintakse ir šāda:

1 Instr ([sākums], virkne, apakšvirkne, [salīdzināt])

[sākt] (pēc izvēles) - Šis izvēles arguments ir meklēšanas sākuma pozīcija. Ievadiet 1, lai sāktu meklēšanu no 1. pozīcijas (vai atstājiet tukšu). Ievadiet 5, lai sāktu meklēšanu no 5. pozīcijas. Svarīgs! Funkcija INSTR aprēķina rakstzīmju pozīciju, skaitot no 1 NAV no [sākuma] pozīcijas.

virkne - Teksta virkne, kurā meklēt.

apakšvirkne - Teksta virkne, kas jāatrod primārajā virknē.

[salīdzināt] (pēc izvēles) - Pēc noklusējuma Instr ir reģistrjutīgs. Iestatot šo argumentu, varat padarīt lielo burtu nejutīgu:

Arguments vb Vērtība

Argumenta vesels skaitlis Apraksts
vbBinaryCompare

0

(Pēc noklusējuma) reģistrjutīga

vbTextCompare

1

Nav reģistrjutīgs

vbDatabaseCompare

2

Tikai MS piekļuve. Salīdzināšanai izmanto informāciju datu bāzē.

Instrumenta sākuma stāvoklis

Instr sākuma pozīcija ļauj norādīt rakstzīmes pozīciju, kurā sāksit meklēšanu. Tomēr paturiet prātā, ka Instr izeja vienmēr tiks skaitīta no 1.

Šeit mēs iestatījām sākuma pozīciju uz 3, lai izlaistu pirmo B:

123 Apakšinstruments_StartPosition ()MsgBox InStr (3, "ABC ABC", "B")Beigu apakš

Rezultāts ir 6, jo otrais B ir 6. rakstzīme virknē.

Reģistru nejutīgs INSTR tests

Pēc noklusējuma VBA apstrādā “L” atšķirīgi no “l”. Citiem vārdiem sakot, VBA ir reģistrjutīga. Tas attiecas uz visām teksta funkcijām. Lai VBA nejustu reģistrjutību, iestatiet argumentu [salīdzināt] uz 1 vai vbTextCompare.

123 Publiskais apakšmeklējums FindText_IgnoreCase ()MsgBox InStr (1, "Neskatieties šajā virknē", "izskatīties", vbTextCompare)Beigu apakš

Varat arī pievienot opciju Salīdzināt tekstu koda moduļa augšdaļā:

1 Opcija Salīdzināt tekstu
12345 Opcija Salīdzināt tekstuPubliskais apakšmeklējums FindText_IgnoreCase2 ()MsgBox InStr ("Neskaties šajā virknē", "izskaties")Beigu apakš

Opcija Salīdzināt tekstu ietekmēs visu šī moduļa kodu. Es personīgi ievietoju to jebkura moduļa augšdaļā, kas nodarbojas ar tekstu, jo man nekad nerūp gadījumu atšķirības.

Funkcija InstrRev

Funkcija Instr meklē no kreisās puses. Tā vietā jūs varat meklēt no labās puses, izmantojot funkciju InstrRev. Funkcija InstrRev darbojas ļoti līdzīgi funkcijai Instr.

123 Sub FindSomeText_FromRight ()MsgBox InStrRev ("Paskaties šajā virknē", "Paskaties")Beigu apakš

Tāpat kā funkcija Instr, tas atgriezīs 1, jo tekstā ir tikai viens “Look” gadījums. Bet, ja mēs pievienosim otru “izskatu”, jūs redzēsit, ka tas atgriež labākā “skata” pozīciju:

123 Sub FindSomeText_FromRight ()MsgBox InStrRev ("Paskaties šajā virknē Izskaties", "Paskaties")Beigu apakš

Tālāk mēs pārskatīsim citus Instr piemērus.

InString piemēri

Ja virkne satur apakšvirkni

Šeit mēs izmantosim paziņojumu If, lai pārbaudītu, vai virknē ir teksta apakšvirkne:

123456789 Public Sub FindSomeText ()Ja InStr ("Paskaties šajā virknē", "izskatīties") = 0 TadMsgBox "Nav atbilstības"CitādiMsgBox "Vismaz viena spēle"Beigas JaBeigu apakš

Atrodiet šūnā teksta virkni

Šūnā var atrast arī virkni:

12345 Sub Find_String_Cell ()Ja InStr (Diapazons ("B2"). Vērtība, "Dr.")> 0 TadDiapazons ("C2"). Vērtība = "ārsts"Beigas JaBeigu apakš

Vai arī apskatiet šūnu diapazonu, lai pārbaudītu, vai šūnās ir teksts.

12345678910 Apakšējā meklēšanas_ diapazona_teksta teksts ()Dim šūna kā diapazonsKatrai diapazona šūnai ("b2: b6")Ja InStr (cell.Value, "Dr.")> 0 Tadšūna. Nobīde (0, 1). Vērtība = "Ārsts"Beigas JaNākamā šūnaBeigu apakš

Atrodiet rakstzīmes pozīciju virknē

Šis kods atradīs vienas rakstzīmes pozīciju virknē un piešķirs to mainīgajam:

1234 Sub Find_Char ()Dim n tik ilgin = InStr ("Šeit skatieties šeit", "L")Beigu apakš

Vārdu meklēšanas virkne

Šis kods meklēs vārdu virknē:

12345678910 Apakšējā meklēšanas_string_for_Word ()Dim n tik ilgin = InStr ("Šeit skaties šeit", "Paskaties")Ja n = 0 TadMsgBox "Vārds nav atrasts"CitādiMsgBox "Vārds atrasts pozīcijā:" & nBeigas JaBeigu apakš

Ja mainīgais satur virkni

Šis kods pārbaudīs, vai virknes mainīgais satur teksta virkni:

12345678 Apakš mainīgais_satur_string ()Dim str kā virknestr = "Paskaties šeit"Ja InStr (str, "Šeit")> 0 TadMsgBox "Šeit atrasts!"Beigas JaBeigu apakš

Instr un kreisā funkcija

Instr var izmantot kopā ar citām teksta funkcijām, piemēram, pa kreisi, pa labi, Len un Mid, lai apgrieztu tekstu.

Ar kreiso funkciju jūs varat izvadīt tekstu pirms teksta virknes:

1234567891011 Apakšstruktūra_pa kreisi ()Dim str kā virkneDim n tik ilgistr = "Paskaties šeit"n = InStr (str, "Šeit")MsgBox pa kreisi (str., N - 1)Beigu apakš

Instr izmantošana Microsoft Access VBA

Visi iepriekš minētie piemēri Access VBA darbojas tieši tāpat kā programmā Excel VBA.

Lai uzzinātu vairāk, izlasiet mūsu rakstu: VBA teksta funkcijas

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave