Tabl cynnwys
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
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:
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.
- 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)
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
- Break = InStr(1, Enw," “, 0) <10
- Os First_or_Last = -1 Yna SHORTNAME = Chwith(Enw, Toriad – 1)
- SHORTNAME = I'r dde(Enw, Len(Enw) – Toriad)
Mae'r gyfran hon yn datgan newidyn cyfanrif newydd o'r enw Break .
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 (“”).
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.
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.