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