Tabl cynnwys
Gweithredu VBA yw'r dull mwyaf effeithiol, cyflymaf a mwyaf diogel i redeg unrhyw weithrediad yn Excel. Yn yr erthygl hon, byddwn yn dangos i chi sut i ddod o hyd i linynnau penodol mewn llinyn penodol arall gan ddefnyddio VBA yn Excel.
Lawrlwythwch Templed Ymarfer
Chi gallwch lawrlwytho'r templed Excel ymarfer rhad ac am ddim oddi yma.
VBA i Dod o Hyd iddo yn String.xlsm
Swyddogaeth InStr
Mae gan Microsoft Excel swyddogaeth adeiledig o'r enw y Swyddogaeth InStr i ganfod lleoliad tannau penodol mewn Llinyn penodol.
Cystrawen Generig:
InStr([start], string1, string2, [compare])
Yma,
20>Dadleuon | Angenrheidiol/ Dewisol | Diffiniad |
---|---|---|
cychwyn | Dewisol | Safle cychwyn y chwiliad.
|
llinyn1 | Angenrheidiol | Y llinyn i chwilio ynddo, Prif Llinyn. |
llinyn2 | Angenrheidiol | Y llinyn i chwilio amdano yn y llinyn cynradd . |
cymharu | Dewisol | Mae ffwythiant InStr yn achos-sensitif yn ddiofyn. Ond os ydych chi eisiau rhedeg achos ansensitif InStr , yna gallwch chi basio'r ddadl yma i berfformio cymhariaeth benodol. Gall y ddadl hon fod fel a ganlyngwerthoedd,
Yn ddiofyn, mae InStr yn cymryd vbBinaryCompare fel y ddadl cymharu. |
8 Enghreifftiau Hawdd i Ddarganfod Safle Llinynnol Penodol yn y Llinyn a Roddwyd gan Ddefnyddio VBA
Gadewch i ni weld rhai enghreifftiau syml i gael safleoedd rhai llinynnau mewn llinyn penodol gan ddefnyddio VBA .
1. VBA i Dod o Hyd i Safle'r Testun yn y Llinyn
Isod mae enghraifft o InStr i ddod o hyd iddo lleoliad testun mewn llinyn.
- Pwyswch Alt + F11 ar eich bysellfwrdd neu ewch i'r tab Datblygwr -> Visual Basic i agor Golygydd Sylfaenol Gweledol .
- Yn y ffenestr cod pop-up, o'r bar dewislen , cliciwch Mewnosod -> Modiwl .
- Nawr yn y ffenestr cod, ysgrifennwch raglen InStr syml y tu mewn i VBA Sub Trefn (gweler isod).
6918ar eich bysellfwrdd neu o'r bar dewislen dewiswch Rhedeg -> Rhedeg Is-Ffurflen Ddefnyddiwr . Gallwch hefyd glicio ar yr eicon chwarae bach yn yr is-ddewislen i redeg y macro.
Fe welwch fod y bydd blwch neges naid yn rhoi rhif i chiyn datgan lleoliad y testun yr oeddech am ei wirio.
Esboniad:
Ein prif linyn, “ Hapusrwydd yn ddewis ” yn frawddeg 21 llythyren (gyda bylchau) ac roeddem am ddarganfod lleoliad y testun “ dewis ” yn y llinyn hwnnw. Dechreuodd y testun “ dewis ” o safle 16eg y llinyn cynradd, felly cawsom rif 16 fel ein hallbwn yn y blwch neges.
22> 2. VBA i Ddarganfod Testun o Safle Penodol yn LlinynNawr, gadewch i ni ddarganfod beth fyddai'n digwydd pe baem am gael y sefyllfa o rif penodol.
- Yn yr un modd ag o'r blaen, agorwch Golygydd Sylfaenol Gweledol o'r tab Datblygwr a Mewnosod Modiwl yn y ffenestr cod.
- Yn y ffenestr cod, ysgrifennwch raglen InStr syml a ddangosir uchod a phasiwch y gwerth yn yr arg cychwyn yn ôl y safle rydych am gyfrif eich testun ohoni.
7453
- Nesaf, Rhedwch y cod.
Fe welwch y bydd y blwch negeseuon naid yn rhoi rhif i chi yn datgan lleoliad y testun gan ddechrau o safle arbennig yr oeddech am ei wirio.
Eglurhad:
Fel y gwyddem eisoes (o’r drafodaeth cam 1) fod y testun “ choice ” wedi cychwyn o’r safle 16 , felly fe wnaethom fewnosod dau “ dewis " yn y llinyn cynradd a gosod 17 fel einParamedr 1af i hepgor y “ dewis ” cyntaf. Felly, rydym yn Rhedeg y macro uchod a dangosodd rif safle i ni 27 sef union rif safle'r eiliad “ dewis ” yn y llinyn a roddwyd.
3. VBA i Dod o Hyd i Destun gyda Swyddogaeth InStr sy'n ansensitif i Achos yn y Llinyn
O gyflwyno'r ffwythiant InStr rydych eisoes yn gwybod bod y ffwythiant InStr yn ddiofyn yn sensitif i achosion. Gadewch i ni ddarganfod hynny gydag enghraifft.
Gweler y cod VBA a ganlyn, lle roeddem am ddod o hyd i leoliad y gair “ Choice ” gyda chyfalaf “C” yn y llinyn “ Mae hapusrwydd yn ddewis ” lle mae dewis yn cael ei ysgrifennu gyda c” bach .
- Rhedwch y cod a darganfyddwch 0 fel ein hallbwn.
Mae hynny oherwydd bod ffwythiant InStr yn trin cyfalaf “C” a bach “c” yn wahanol. Felly fe chwiliodd am y gair “ Choice ” yn y llinyn ac ni chafodd unrhyw gyfatebiaeth, felly dychwelodd 0 .
- I wneud y ffwythiant InStr cas-ansensitif , gosodwch y ddadl cymharu i vbTextCompare (gweler isod).
4858
35>
- Rhedwch y cod.
Fe gewch chi safle y testun o'r llinyn, p'un a yw'r testun wedi'i ysgrifennu mewn prif lythrennau neu lythrennau bach .
4. VBA i Ffeindio Testun o Dde Llinyn
Hyd yn hyn roedd ffwythiant InStr ond yn rhoi'r safle o ochr chwith y llinyn i ni. Ond beth os ydych am ddod o hyd i leoliad y testun o ochr dde'r llinyn.
Mae Swyddogaeth InStrRev yn chwilio o'r dde. Mae'r ffwythiant InStrRev yn gweithio'n debyg iawn i ffwythiant InStr a bydd yn dod o hyd i leoliad testun o ochr dde y llinyn.
0>Gweler yr enghreifftiau canlynol i ddeall y gwahaniaeth.- Os ydym yn rhedeg y cod canlynol gyda'r ffwythiant InStr yna,
mae'n rhoi safle ( 16 ) y testun cyntaf “ dewis ” i ni.
3>
- Ond os ydym yn rhedeg yr un cod gyda'r swyddogaeth InStrRev yna,
mae'n rhoi'r sefyllfa i ni ( 27 ) o’r testun olaf “ dewis ”.
Darlleniadau tebyg:
- CanfodNesaf Gan Ddefnyddio VBA yn Excel (2 Enghraifft)
- Sut i Ddarganfod ac Amnewid Gan Ddefnyddio VBA (11 Ffordd)
- Dod o Hyd i'r Union Baru Gan Ddefnyddio VBA yn Excel (5 Ffordd)
5. VBA i Dod o Hyd i Safle Cymeriad mewn Llinyn
Gallwch hefyd ddod o hyd i leoliad nod arbennig mewn llinyn yn yr un ffordd ag y daethoch o hyd i destun.
- Copïwch y yn dilyn y cod i mewn i'ch ffenestr cod VBA
8963
- A Rhedeg y macro.
Mae’r “ e ” cyntaf yn ein llinyn a roddwyd ynsafle'r rhif 7 .
6. VBA i Dod o Hyd i Is-linyn mewn Llinyn
Yma byddwn yn dysgu sut i ddarganfod a yw llinyn yn cynnwys is-linyn ai peidio.
I gael hynny, mae gennym ni i redeg Datganiad IF yn ein cod.
- Yr un ffordd ag o'r blaen, agorwch Golygydd Sylfaenol Gweledol o'r tab Datblygwr a Mewnosod a Modiwl yn y ffenestr cod.
- Yn y ffenestr cod, copïwch y cod canlynol a'i gludo.
7417
Eich mae'r cod nawr yn barod i'w redeg.
- Rhedeg y macro.
Os yw eich llinyn yn cynnwys yr is-linyn yna fe gewch cyfatebiaeth , fel arall, ni fydd yn dychwelyd unrhyw un sy'n cyfateb. Yn ein hesiampl, roeddem am ddarganfod a yw ein llinyn cynradd “ Mae hapusrwydd yn ddewis ” yn cynnwys y gair “ dewis ” neu ddim. Fel mae'n ei wneud, rydyn ni'n cael canlyniad Canfuwyd Cyfateb .
7. VBA i Dod o Hyd i Llinyn mewn Ystod Cell
Gallwch chwilio am destun penodol mewn ystod cell o linyn a dychwelyd llinyn penodol.
Edrychwch ar yr enghraifft ganlynol lle byddwn yn dod o hyd i “ Dr. ” a phan fydd cyfatebiaeth bydd yn dychwelyd “ Doctor ”.
- Isod mae'r cod i gael y canlyniad a drafodwyd uchod,
2342
- Rhedwch y cod a dangosir y canlyniad isod
- Gallwch addasu'r macro yn ôl eich angen. Er enghraifft, os ydych chi eisiaui ddod o hyd i “ Prof. ” mewn unrhyw gell llinyn, a chael “ Professor ” fel dychwelyd, yna pasiwch “<1 Prof. " fel y gwerth yn lle " Dr ." yn 4edd llinell y macro ac “ Professor ” yn lle “ Doctor ” yn 5ed llinell y macro a diffiniwch y rhif amrediad cell yn unol â hynny.
8. VBA i Dod o Hyd i Llinyn mewn Cell
Gallwch hefyd chwilio am destun penodol mewn cell sengl o linyn a dychwelyd llinyn penodol.
- Copïwch y cod canlynol a'i gludo i'r ffenestr cod.
7438
Bydd yn chwilio am “ Dr. ” yn Cell B5 ac os yw'n dod o hyd i'r cyfatebiad yna mae'n dychwelyd “ Doctor ” yn Cell C5 .
- Gallwch addasu'r macro yn ôl eich angen. Er enghraifft, os ydych chi am ddod o hyd i “ Prof. ” mewn unrhyw gell llinyn, a chael “ Professor ” fel dychweliad, yna pasiwch “ Prof. ” fel y gwerth yn lle “ Dr .” yn 2il linell y macro ac “ Professor ” yn lle “ Doctor ” yn 3edd llinell y macro a diffiniwch y cyfeirnod cell yn unol â hynny.
Casgliad
Dangosodd yr erthygl hon i chi sut i ddod o hyd i destunau penodol mewn llinyn yn Excel gan ddefnyddio VBA macro. Gobeithio bod yr erthygl hon wedi bod yn fuddiol iawn i chi. Mae croeso i chi ofyn unrhyw gwestiynau amy pwnc.