Kā lietot InStr funkciju VBA (3 vienkārši piemēri)

  • Dalīties Ar Šo
Hugh West

Strādājot ar Excel VBA kodiem, mēs sastopamies ar dažām iebūvētām funkcijām, kas sarežģītu uzdevumu pārvērš nelielā vienas rindiņas kodā. InStr ir šāda Excel VBA pieejama funkcija, kas meklē noteiktu virkni citā noteiktā virknē, sākot no noteiktas pozīcijas. Šodien es parādīšu, kā jūs varat izmantot funkciju InStr funkciju VBA, lai meklētu konkrētu virkni citā noteiktā virknē.

Lejupielādēt Practice Workbook

InStr Function.xlsm

Ievads VBA InStr funkcija

  • Kopsavilkums

Meklē noteiktu virkni dotajā virknē, sākot no dotās pozīcijas. Ja tiek atrasta atbilstība, tiek atgriezta pozīcija dotajā virknē, no kuras sākas atbilstība.

  • Sintakse

InStr([start],string1,string2,[compare])

  • Argumenti
ARGUMENTS PASŪTĪJUMS APRAKSTS

[sākt] Pēc izvēles Pozīcija, no kuras tiks sākta meklēšana. Noklusējuma vērtība ir 1.
string1 Nepieciešams Virkne, kurā tiek meklēta konkrētā virkne.
string2 Nepieciešams Virkne, kas tiek meklēta dotajā virknē.
[salīdzināt] Pēc izvēles Skaitliska vērtība starp {-1,0,1,2}, kas norāda salīdzināšanas veidu. Noklusējuma vērtība ir -1 (vbUseCompareOption). Ja nav norādīts paziņojums Option Compare, tiek veikta bināra salīdzināšana.

Piezīme:

  • Lai gan [sākt] arguments un [salīdzināt] arguments nav obligāts, jums ir nepieciešams [sākt] arguments, ja norādāt [salīdzināt] Pretējā gadījumā tiks pieļauta kļūda.
  • Ja viens vai abi [sākt] arguments un [salīdzināt] arguments ir Null , tiks pieļauta kļūda.
  • Četras norādītās vērtības [salīdzināt] arguments veic četrus dažādus salīdzināšanas veidus. Tie ir minēti turpmāk:
VALUE CONSTANT APRAKSTS

-1 vbUseCompareOption Veic salīdzināšanu, kas norādīta opcijas salīdzināšanas izteikumā.
0 vbBinaryCompare Veic bināro salīdzināšanu.
1 vbTextCompare Veic teksta salīdzināšanu.
2 vbDatubaseCompare Veic salīdzināšanu, pamatojoties uz jūsu datubāzi.
  • Iespēju salīdzināšana paziņojums ir paziņojums, kas tiek sniegts pirms galvenā VBA koda sākšanas. Tas norāda, vai kods meklēs Binary Comparison vai Text Comparison, kad tas būs nepieciešams.

Iespēja Salīdzināt tekstu

    • Vienkāršiem vārdiem sakot. , Binārais salīdzinājums nozīmē salīdzināšanu, kurā ņem vērā mazos un lielos burtus.
    • Vienkāršiem vārdiem sakot. , Teksta salīdzinājums nozīmē salīdzināšanu, kas nav atkarīga no burtu un atbilstu burtu lielumiem.
  • Atgrieztā vērtība
    • Atgriež pozīciju string1 no kuras string2 sākās.
    • Gadījumā, ja string2 nav atrodams string1 sākot no sākt pozīciju, atgriež 0.
    • Ja string1 ir nulles garuma, atgriež 0.
    • Ja string2 ir nulles garuma, tiek atgriezts arguments sākt .
    • Un visbeidzot, ja kāds no string1 vai string2 ir Null , tiek atgriezta kļūda.

3 vienkārši piemēri VBA InStr funkcijas izmantošanai

Šajā sadaļā aplūkosim trīs vienkāršus piemērus, kā izmantot VBA InStr funkciju programmā Excel. Aplūkosim pirmo piemēru par InStr funkcija VBA kodos.

1. Lēmums par to, vai adrese ir e-pasta adrese vai nav izmantojot VBA InStr funkciju

Šeit mēs esam paņēmuši datu kopu, kurā ir dažas klientu kontaktadreses. Mūsu mērķis būs noteikt, vai šīs adreses ir e-pasta adreses vai nav.

Tagad mēs izstrādāsim VBA kodu, izmantojot InStr funkciju, lai noteiktu, vai tā ir vai nav e-pasta adrese. Lai to izdarītu, izpildiet tālāk norādītās darbības.

Soļi:

  • Sākumā dodieties uz Izstrādātājs cilni un izvēlieties Visual Basic ( Vai nospiediet Alt+F11) lai atvērtu VBA logs.

  • Pēc tam uz VBA logu, dodieties uz Ievietot> Modulis .

  • Pēc tam modulī ielīmējiet šādu kodu:
 Function DECISION(string1 As String) Dim Position As Integer Position = InStr(1, string1, "@", 0) If Position = 0 Then DECISION = "Not Email" Else DECISION = "Email" End If End Function 

  • Turklāt mēs esam izveidojuši funkciju ar nosaukumu LĒMUMS . Tā nosaka, vai adrese ir e-pasta adrese vai nav. Piemērosim šo funkciju mūsu rīcībā esošajam datu kopumam.
  • Par šūnu C5 , ierakstiet šādu formulu un pēc tam automātiski aizpildiet pārējās šūnas, izmantojot Uzpildes rokturis .
=DECISION(B5)

  • Kā redzams, mēs esam identificējuši katru adresi neatkarīgi no tā, vai tā ir e-pasta adrese vai nav.

🎓 Kā darbojas kods?

  • Funkcija DECISION(string1 kā virkne)

Vispirms tiek izveidota funkcija ar nosaukumu LĒMUMS ar virknes argumentu ar nosaukumu string1 .

  • Dim Pozīcija kā vesels skaitlis

Tas deklarē veselskaitļa mainīgo ar nosaukumu Pozīcija .

  • Position = InStr(1, string1, "@", 0)

Tas piešķir vērtību Pozīcija mainīgo kā izvades InStr funkcija ar argumentiem 1, string1, "@" un 0 . Īsāk sakot, tiek piešķirta pozīcija adresē, kurā ir "@" .

  • Ja pozīcija = 0, tad LĒMUMS = "Nav e-pasta"

Tas piešķir izvades LĒMUMS funkciju kā "Ne E-pasts" , ja Pozīcija mainīgais lielums ir 0 , tas nozīmē, ka nebija "@" adresē.

(Atcerieties, ka, ja kāda virkne nav atrodama dotajā virknē, tad InStr funkcija atgriež 0 ).

  • Pretējā gadījumā DECISION = "E-pasts"

Tas piešķir izvades LĒMUMS funkciju kā "E-pasts" ja būtu "@" adresē. Tādējādi adreses, kurās ir "@" tiek iedalīti šādās kategorijās E-pasts , bet pārējās kategorijas ir "Ne E-pasts" .

Līdzīgi lasījumi

  • Kā lietot VBA funkciju UCASE programmā Excel (4 piemēri)
  • MsgBox funkcijas izmantošana programmā Excel VBA (pilnīga vadlīnija)
  • Kā lietot VBA SPLIT funkciju programmā Excel (5 piemēri)
  • LCase funkcijas izmantošana VBA programmā Excel (ar 4 piemēriem)
  • Kā lietot Fix funkciju programmā Excel VBA (4 piemēri)

2. VBA InStr funkcijas izmantošana, lai Dažu e-pasta adrešu paplašinājuma izvilkšana

Šeit mums ir saraksts ar dažu klientu e-pasta adresēm. Šoreiz mēs izvilksim e-pasta adreses paplašinājumu, piemēram, vai tām ir gmail.com vai yahoo.com .

Lai to izdarītu, izpildiet tālāk norādītās darbības.

Soļi:

  • Lai sāktu, tāpat kā iepriekšējā metodē, atveriet jaunu VBA un ielīmējiet logā šādu kodu.
 Funkcija EXTENSION(Email As String) Dim Position As Integer Position = InStr(1, Email, "@", 0) EXTENSION = Right(Email, (Len(Email) - Position)) End Function 

  • Turklāt mēs esam izveidojuši funkciju ar nosaukumu EXTENSION . Tas izraksta jebkuras e-pasta adreses paplašinājumu.
  • Turklāt piemērosim šo funkciju mūsu rīcībā esošajam datu kopumam. Vispirms ievadiet šo formulu šūnā C5 un pēc tam divreiz noklikšķiniet uz Uzpildes rokturis .
=EXTENSION(B5)

  • Visbeidzot, mēs redzam, ka esam veiksmīgi ieguvuši visu e-pasta vēstuļu paplašinājumu.

🎓 Kā darbojas kods?

  • Funkcija EXTENSION(E-pasts kā virkne)

Tādējādi tiek izveidota jauna funkcija ar nosaukumu EXTENSION , ar virknes argumentu ar nosaukumu E-pasts .

  • Dim Pozīcija kā vesels skaitlis

Šajā daļā tiek deklarēts veselskaitļa mainīgais ar nosaukumu Amats.

  • Pozīcija = InStr(1, E-pasts, "@", 0)

Tas piešķir vērtību Pozīcija mainīgo kā izvades InStr funkcija ar argumentiem 1, E-pasts, "@" un 0 . Īsāk sakot, tas piešķir pozīciju. E-pasts ja ir "@" .

  • EXTENSION = Right(Email, (Len(Email) - Position))

Šajā daļā tiek piešķirta EXTENSION funkciju kā rakstzīmes pēc simbola "@" . Tas ir nepieciešamais pagarinājums E-pasts .

3. Vārda vai uzvārda izvilkšana no vārda izmantojot VBA InStr funkciju

Visbeidzot, mēs veiksim unikāli atšķirīgu uzdevumu. Šoreiz mums ir dažu uzņēmuma darbinieku vārdi. Un mēs mēģināsim izveidot funkciju, lai iegūtu vai nu darbinieku vārdu, vai uzvārdu.

Lai to izdarītu, izpildiet tālāk norādītās darbības.

Soļi:

  • Pirmkārt, līdzīgi kā metode 1 , ielīmējiet tālāk norādīto kodu jaunā VBA loga modulī.
 Funkcija SHORTNAME(Name As String, First_or_Last As Integer) Dim Break As Integer Break = InStr(1, Name, " ", 0) If First_or_Last = -1 Then SHORTNAME = Left(Name, Break - 1) Else SHORTNAME = Right(Name, Len(Name) - Break) End If End Function 

  • Šeit mēs esam izveidojuši funkciju ar nosaukumu ĪSAIS NOSAUKUMS kas no vārda izraksta vārdu vai uzvārdu. Piemērosim šo formulu mūsu datu kopai.
  • Vispirms, lai iegūtu pirmo vārdu, šūnā ierakstiet formulu, kas parādīta turpmāk. C5 .
= SAĪSINĀTAIS NOSAUKUMS(B5,-1)

  • Visbeidzot, lai iegūtu uzvārdus, mēs ierakstām šādu formulu. D5 :
= SAĪSINĀTAIS NOSAUKUMS(B5,1)

  • Pēc tam, ja mēs automātiski aizpildām pārējās šūnas ar Uzpildes apstrādātājs , mēs redzēsim vēlamo rezultātu.

🎓 Kā darbojas kods?

  • Funkcija SHORTNAME(Nosaukums kā virkne, First_or_Last kā vesels skaitlis)

Tā izveido jaunu funkciju ar nosaukumu ĪSAIS NOSAUKUMS ar vienu virknes argumentu ar nosaukumu Nosaukums un vienu veselskaitļa argumentu ar nosaukumu Pirmais_vai_pēdējais .

  • Dim Break As Integer

Šajā daļā tiek deklarēts jauns veselskaitļa mainīgais ar nosaukumu Pārtraukums .

  • Break = InStr(1, Nosaukums, " ", 0)

Tas piešķir vērtību Pārtraukums mainīgo kā izvades InStr funkcija ar argumentiem 1, Nosaukums, " " un 0 . Īsāk sakot, tas piešķir pozīciju. Nosaukums ja ir atstarpi (" ").

  • Ja First_or_Last = -1, tad SHORTNAME = Left(Nosaukums, Break - 1)

Šajā rindā tiek piešķirta izvades ĪSAIS NOSAUKUMS funkciju kā rakstzīmes pirms telpa , ja Pirmais_vai_pēdējais arguments ir -1. Tas ir pirmais vārds.

  • SHORTNAME = Right(Name, Len(Name) - Break)

Šajā daļā tiek piešķirta ĪSAIS NOSAUKUMS funkciju kā rakstzīmes pēc telpa , ja Pirmais_vai_pēdējais arguments ir 1. Tas ir uzvārds.

Secinājums

Šādā veidā varat rakstīt VBA kodus ar InStr funkciju, kas atrod konkrētas virknes pozīciju citā dotā virknē, un pēc tam varat izveidot savas funkcijas dažādiem lietojumiem. Turklāt, ja jums ir kādi jautājumi, droši jautājiet mums.

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.