Sut i Ddefnyddio Swyddogaeth InStr yn VBA (3 Enghraifft Hawdd)

  • Rhannu Hwn
Hugh West

Wrth weithio gyda chodau Excel VBA, rydym yn dod ar draws ychydig o swyddogaethau adeiledig sy'n trosi tasg gymhleth yn god un llinell fach. Mae InStr yn swyddogaeth o'r fath sydd ar gael yn Excel VBA sy'n chwilio am linyn penodol o fewn llinyn penodol arall gan ddechrau o safle penodol. Heddiw, byddaf yn dangos sut y gallwch chi ddefnyddio'r swyddogaeth InStr yn VBA i chwilio am linyn penodol o fewn llinyn penodol arall.

Lawrlwythwch Gweithlyfr Ymarfer

6>

InStr Function.xlsm

Cyflwyniad i Swyddogaeth InStr VBA

  • Crynodeb

Chwiliadau am linyn penodol o fewn llinyn penodol, gan ddechrau o safle penodol. Os yn dod o hyd i gyfatebiaeth, mae'n dychwelyd y safle yn y llinyn a roddwyd o ble cychwynnodd y paru.

  • Cystrawen

InStr([cychwyn ],llinyn1,llinyn2,[cymharer])

  • Dadleuon
> <14 <14
DADL GOFYNIAD DISGRIFIAD

[cychwyn] Dewisol Y lleoliad y bydd yn dechrau chwilio ohono. Y rhagosodiad yw 1. llinyn1 Angenrheidiol Y llinyn y mae'n chwilio ynddo am linyn penodol. llinyn2 Angenrheidiol Y llinyn y mae'n chwilio amdano o fewn llinyn penodol.
[cymharer] Dewisol Gwerth rhifol rhwng {-1,0,1,2} sy'n pennu'r math o gymhariaeth. Mae'rrhagosodedig yw -1 (vbUseCompareOption). Os nad yw'r datganiad Cymharu Opsiwn wedi'i nodi, gwnewch Gymhariaeth Ddeuaidd.

Sylwer:

  • Er bod [cychwyn] arg a'r arg [cymharu] yn ddewisol, mae angen y ddadl [cychwyn] os ydych yn nodi'r arg [cymharu] . Fel arall, bydd yn codi gwall.
  • Os yw un neu'r ddwy o'r arg [cychwyn] a'r arg [cymharu] yn Null , byddwch yn wynebu gwall.
  • Mae'r pedwar gwerth penodedig yn y ddadl [cymharu] yn perfformio pedwar math gwahanol o gymhariaeth. Cânt eu crybwyll isod:
> -1
GWERTH CYFANSWM 1>DISGRIFIAD

vbUseCompareOption Yn perfformio'r gymhariaeth a nodir yn y datganiad Opsiwn Cymharu.
0 vbBinaryCompare Yn Perfformio Cymhariaeth Ddeuaidd.
1 vbTextCompare Yn gwneud cymhariaeth testun.
2 vbDatabaseCompare Yn gwneud cymhariaeth yn seiliedig ar eich cronfa ddata .
  • Option Compare Mae datganiad yn ddatganiad a ddarperir cyn i'r prif god VBA ddechrau. Mae'n nodi a fydd y cod yn chwilio am Gymhariaeth Ddeuaidd neu Gymhariaeth Testun pan fo angen.

Opsiwn Cymharu Testun

  • Yn syml , mae Cymhariaeth Ddeuaidd yn golygu achos-sensitifcymhariaeth.
  • Yn syml , mae Cymhariaeth Testun yn golygu cymhariaeth ansensitif o achosion.
  • Gwerth Dychwelyd 2>
    • Yn dychwelyd y safle yn y llinyn1 y cychwynnodd y llinyn2 ohono.
    • Rhag ofn na ddarganfyddir llinyn2 o fewn llinyn1 gan ddechrau o'r safle cychwyn , yn dychwelyd 0.
    • Os yw'r llinyn1 o hyd sero, mae'n dychwelyd 0.
    • Os yw'r llinyn 2 o hyd sero, mae'n dychwelyd y ddadl cychwyn .
    • Ac yn olaf, os oes unrhyw un o'r llinyn1 neu Mae string2 yn Null , yn dychwelyd gwall.
  • 3 Enghraifft Hawdd i Ddefnyddio Swyddogaeth InStr VBA

    Yn yr adran hon, byddwn yn gweld tair enghraifft hawdd o gymhwyso'r swyddogaeth VBA InStr yn Excel. Gadewch i ni weld yr enghraifft gyntaf o'r swyddogaeth InStr mewn codau VBA.

    1. Penderfynu a yw Cyfeiriad yn Gyfeiriad E-bost neu Ddim drwy Ddefnyddio Swyddogaeth InStr VBA

    Yma, rydym wedi cymryd set ddata sy'n cynnwys rhai cyfeiriadau cyswllt cwsmeriaid. Ein nod yma fydd nodi a yw'r cyfeiriadau yn gyfeiriadau e-bost ai peidio.

    Nawr byddwn yn datblygu cod VBA gan ddefnyddio'r swyddogaeth InStr i adnabod boed yn Gyfeiriad E-bost ai peidio. I wneud hynny, dilynwch y camau isod.

    Camau:

    • Yn y dechrau, ewch i'r tab Datblygwr a dewiswch Visual Basic ( Neu pwyswch Alt+F11) i agor y VBA ffenestr.

    • Yna, ar y ffenestr VBA , ewch i Mewnosod > Modiwl .

    • Ar ôl hynny, ar y modiwl, gludwch y cod canlynol:
    5797

    <27

    • Yn ogystal, rydym wedi creu swyddogaeth o'r enw PENDERFYNIAD . Mae'n penderfynu a yw cyfeiriad yn gyfeiriad e-bost ai peidio. Gadewch i ni gymhwyso'r ffwythiant i'r set ddata sydd gennym.
    • Ar gell C5 , ysgrifennwch y fformiwla ganlynol ac yna awtolenwi gweddill y celloedd gan ddefnyddio Fill Handle .
    =DECISION(B5)

    • Fel y gallwn weld, rydym wedi nodi pob cyfeiriad boed yn gyfeiriad e-bost ai peidio.

    2, 2012, 2012, 2012 🎓 Sut Mae'r Cod yn Gweithio?

    • Swyddogaeth PENDERFYNIAD(llinyn1 Fel Llinyn)

    Yn gyntaf, mae hwn yn creu ffwythiant o'r enw PENDERFYNIAD gyda a arg llinyn o'r enw string1 .

    • Pylu Safle Fel Cyfanrif

    Mae'n datgan newidyn cyfanrif o'r enw Swydd .

    • Sefyllfa = InStr(1, string1, “@”, 0)

    Mae hwn yn aseinio gwerth y Lleoliad newidyn fel allbwn y ffwythiant InStr gyda'r dadleuon 1, llinyn1, “@” a 0 . Yn fyr, mae hyn yn aseinio'r safle yn y cyfeiriad lle mae “@” .

    • Os Swydd = 0 Yna PENDERFYNIAD = “Ddim yn e-bost”

    Mae'n aseinio allbwn y ffwythiant PENDERFYNU fel "Nid E-bost" , os yw'r Sefyllfa newidyn yw 0 , mae hynny'n golygu, nid oedd “@” yn y cyfeiriad. 1>Mae ffwythiant InStr yn dychwelyd 0 ).

    • Else PENDERFYNIAD = “E-bost”

    Mae hwn yn aseinio'r allbwn y swyddogaeth PENDERFYNIAD fel "E-bost" os oedd "@" yn y cyfeiriad. Felly mae'r cyfeiriadau lle mae'r “@” yn cael eu categoreiddio fel E-bost , ac mae'r gweddill yn cael eu categoreiddio fel "Nid E-bost" .

    Darlleniadau Tebyg

    • Sut i Ddefnyddio swyddogaeth VBA UCASE yn Excel (4 Enghraifft)
    • Defnyddiwch Swyddogaeth MsgBox yn Excel VBA (Canllaw Cyflawn)
    • Sut i ddefnyddio swyddogaeth VBA SPLIT yn Excel (5 Enghraifft)
    • Defnyddiwch Swyddogaeth LCase yn VBA yn Excel (Gyda 4 Enghreifftiau)
    • Sut i Ddefnyddio Swyddogaeth Atgyweirio yn Excel VBA (4 Enghraifft)
    22> 2. Defnyddio Swyddogaeth InStr VBA ar gyfer Edynnu Ymestyn Rhai Cyfeiriadau E-bost

    Yma, mae gennym restr o rai Cyfeiriadau E-bost rhai cwsmeriaid. Y tro hwn byddwn yn echdynnu estyniad y cyfeiriad e-bost megis a oes ganddynt gmail.com neu yahoo.com .

    I wneud hynny, dilynwch y camau isod.

    Camau:

    • I ddechrau, fel y dull blaenorol, agorwch VBA<2 newydd> modiwl a gludwch y cod canlynol yn y ffenestr.
    3797

    • Yn ogystal, rydym wedi creu ffwythiant o'r enw ESTYNIAD . Mae'n echdynnu estyniad unrhyw gyfeiriad e-bost.
    • Ymhellach, gadewch i ni gymhwyso'r swyddogaeth hon i'r set ddata sydd gennym. Yn gyntaf, rhowch y fformiwla hon ar gell C5 ac yna cliciwch ddwywaith ar y Trin Llenwch .
    =EXTENSION(B5) 3>

    • Yn olaf, gallwn weld ein bod wedi llwyddo i echdynnu Estyniad yr holl E-byst.

    1> 🎓 Sut Mae'r Cod yn Gweithio?

    • Swyddogaeth EXTENSION(E-bost Fel Llinyn)

    Mae hyn yn creu ffwythiant newydd o'r enw EXTENSION , gyda a arg llinyn o'r enw E-bost .

    • Dim Poition As Integer

    Mae'r rhan hon yn datgan newidyn cyfanrif o'r enw Swydd .

    • Sefyllfa = InStr(1, E-bost, “@”, 0)

    Mae hwn yn aseinio gwerth y Safle newidyn fel allbwn y ffwythiant InStr gyda'r dadleuon 1, E-bost, “@” a 0 . Yn fyr, mae hyn yn aseinio'r safle yn y E-bost lle mae “@” .

    • EXTENSION = I'r dde(E-bost, (Len (E-bost) – Swydd))

    Mae'r rhan hon yn aseinio allbwn y ffwythiant EXTENSION fel y nodau ar ôl y symbol “@” . Dyma'r estyniad gofynnol i'r E-bost .

    3. Tynnu'r Enw Cyntaf neu'r Olaf allan o Enw drwy Ddefnyddio Swyddogaeth InStr VBA

    Yn olaf, byddwn yn perfformio tasg unigryw o wahanol. Y tro hwn mae gennym enwau rhai o weithwyrcwmni. A byddwn yn ceisio adeiladu ffwythiant i dynnu naill ai enw cyntaf neu enw olaf y gweithwyr.

    I wneud hynny, dilynwch y camau isod.

    Camau:

    • Yn gyntaf, yn debyg i dull 1 , gludwch y cod isod mewn modiwl newydd yn y ffenestr VBA .
    3012

    • Yma, rydym wedi creu ffwythiant o'r enw SHORTNAME sy'n tynnu naill ai'r enw cyntaf neu'r enw olaf o enw. Gadewch i ni gymhwyso'r fformiwla hon i'n set ddata.
    • I ddechrau, i dynnu'r enw cyntaf, ysgrifennwch y fformiwla isod yng nghell C5 .
    =SHORTNAME(B5,-1)

      Yn olaf, i echdynnu'r enwau olaf, ysgrifennwn y fformiwla ganlynol yn D5 :
    =SHORTNAME(B5,1)

    • Ar ôl hynny, os byddwn yn llenwi gweddill y celloedd yn awtomatig gyda Triniwr Llenwi , fe welwn ni'r canlyniad dymunol.

    🎓 Sut Mae'r Cod yn Gweithio?

    • Swyddogaeth SHORTNAME(Enw Fel Llinyn, First_or_Last As Integer)

    Mae'n creu ffwythiant newydd o'r enw SHORTNAME gydag un arg Llinynnol o'r enw Enw ac un Ddadl Gyfanrif wedi'i henwi First_or_Last .

    • Dim Break As Integer
    • <11

      Mae'r gyfran hon yn datgan newidyn cyfanrif newydd o'r enw Break .

      • Break = InStr(1, Enw," “, 0) <10

      Mae'n aseinio gwerth y newidyn Break fel allbwn y ffwythiant InStr gyda'r dadleuon 1, Enw, “ ” a 0 . Yn fyr, mae hyn yn aseinio'r safle yn yr Enw lle mae bwlch (“”).

      • Os First_or_Last = -1 Yna SHORTNAME = Chwith(Enw, Toriad – 1)

      Mae'r llinell hon yn aseinio allbwn y ffwythiant SHORTNAME fel y nodau cyn y gofod , os yw'r arg First_or_Last yn -1. Dyma'r enw cyntaf.

      • SHORTNAME = I'r dde(Enw, Len(Enw) – Toriad)

      Mae'r rhan hon yn aseinio allbwn y Mae SHORTNAME yn gweithredu fel y nodau ar ôl y gofod , os yw'r arg First_or_Last yn 1. Dyma'r enw olaf.

      Casgliad

      Yn y modd hwn, gallwch ysgrifennu codau VBA gyda'r ffwythiant InStr sy'n darganfod lleoliad llinyn penodol o fewn un arall a roddir llinyn, ac yna gallwch greu eich swyddogaethau eich hun ar gyfer amrywiaeth o ddefnyddiau. Ar ben hynny, os oes gennych unrhyw gwestiynau, mae croeso i chi ofyn i ni.

    Mae Hugh West yn hyfforddwr a dadansoddwr Excel hynod brofiadol gyda dros 10 mlynedd o brofiad yn y diwydiant. Mae ganddo radd Baglor mewn Cyfrifeg a Chyllid a gradd Meistr mewn Gweinyddu Busnes. Mae gan Hugh angerdd am addysgu ac mae wedi datblygu dull addysgu unigryw sy’n hawdd ei ddilyn a’i ddeall. Mae ei wybodaeth arbenigol o Excel wedi helpu miloedd o fyfyrwyr a gweithwyr proffesiynol ledled y byd i wella eu sgiliau a rhagori yn eu gyrfaoedd. Trwy ei flog, mae Hugh yn rhannu ei wybodaeth gyda’r byd, gan gynnig tiwtorialau Excel am ddim a hyfforddiant ar-lein i helpu unigolion a busnesau i gyrraedd eu llawn botensial.