Tabela e përmbajtjes
Zbatimi i VBA është metoda më efektive, më e shpejtë dhe më e sigurt për të ekzekutuar çdo operacion në Excel. Në këtë artikull, ne do t'ju tregojmë se si të gjeni vargje të caktuara në një varg tjetër të dhënë duke përdorur VBA në Excel.
Shkarko modelin e praktikës
Ju mund ta shkarkoni shabllonin falas të praktikës Excel nga këtu.
VBA për të gjetur në String.xlsm
Funksioni InStr
Microsoft Excel ka një funksion të integruar të quajtur Funksioni InStr për të gjetur pozicionin e vargjeve specifike në një varg të caktuar.
Sintaksa e përgjithshme:
InStr([start], string1, string2, [compare])
Këtu,
Argumentet | Kërkohet/ Opsionale | Përkufizim |
---|---|---|
fillimi | Opsionale | Pozicioni fillestar i kërkimit.
|
string1 | Kërkohet | Vargu për të kërkuar, vargu primar. |
string2 | Kërkohet | Rasti për të kërkuar në vargun kryesor . |
krahaso | Opsionale | Funksioni InStr është i ndjeshëm ndaj shkronjave të vogla si parazgjedhje. Por nëse doni të ekzekutoni një rast të pandjeshëm InStr , atëherë mund ta kaloni argumentin këtu për të kryer një krahasim të caktuar. Ky argument mund të jetë si vijonvlerat,
Si parazgjedhje, InStr merr vbBinaryCompare si argument krahasues. |
8 shembuj të thjeshtë për të gjetur një pozicion specifik të vargut në vargun e dhënë duke përdorur VBA
Le të shohim disa shembuj të thjeshtë për të marrë pozicionet e vargjeve të caktuara në një varg të caktuar duke përdorur VBA .
1. VBA për të gjetur pozicionin e tekstit në varg
Më poshtë është një shembull i InStr për të gjetur pozicioni i një teksti në një varg.
- Shtypni Alt + F11 në tastierën tuaj ose shkoni te skeda Zhvilluesi -> Visual Basic për të hapur Visual Basic Editor .
- Në dritaren e kodit që shfaqet, nga shiriti i menysë , kliko Fut -> Moduli .
- Tani në dritaren e kodit, shkruani një program të thjeshtë InStr brenda një VBA Sub Procedura (shih më poshtë).
1617
Kodi juaj tani është gati të ekzekutohet.
- Shtypni F5 në tastierën tuaj ose nga shiriti i menysë zgjidhni Run -> Ekzekutoni Sub/UserForm . Mund të klikoni gjithashtu në ikonën e vogël Play në shiritin e nënmenysë për të ekzekutuar makro.
Do të shihni se kutia e mesazhit pop-up do t'ju japë një numër duke deklaruar pozicionin të tekstit që keni dashur të kontrolloni.
Shpjegim:
Vargu ynë kryesor, “ Lumturia është një zgjedhje ” është një fjali me 21 shkronja (me hapësira) dhe ne donim të gjenim pozicionin e tekstit “ zgjedhja ” në atë varg. Teksti " zgjedhja " filloi nga pozicioni i 16-të i vargut kryesor, prandaj morëm numrin 16 si dalje në kutinë e mesazhit.
2. VBA për të gjetur tekst nga një pozicion specifik në varg
Tani le të zbulojmë se çfarë do të ndodhte nëse do të donim të merrnim pozicionin nga një numër i caktuar.
- Njëlloj si më parë, hapni Visual Basic Editor nga skeda Zhvilluesi dhe Fut një Modul në dritaren e kodit.
- Në dritaren e kodit. dritaren e kodit, shkruani një program të thjeshtë InStr të paraqitur më sipër dhe kaloni vlerën në argumentin e fillimit sipas pozicionit nga i cili dëshironi të numëroni tekstin tuaj.
7362
- Më pas, ekzekutoni kodin.
Do të shihni që kutia e mesazheve që shfaqet do të ju jap një numër që deklaron pozicionin të tekstit duke filluar nga një pozicion i caktuar që dëshironi të kontrolloni.
Shpjegim:
Siç e dinim tashmë (nga diskutimi i fazës 1) se teksti " zgjedhja " filloi nga pozicioni 16 , kështu që ne futëm dy " zgjedhja ” në vargun kryesor dhe vendos 17 si tonëParametri i parë për të kapërcyer " zgjedhja " e parë. Pra, ne ekzekutuam makronë e mësipërme dhe ajo na tregoi numrin e pozicionit 27 që është saktësisht numri i pozicionit të sekondës “ zgjedhja ” në vargun e dhënë.
3. VBA për të gjetur tekst me funksion InStr pa ndjeshmëri të madhe në string
Nga prezantimi i funksionit InStr ju tashmë e dini se si parazgjedhje, funksioni InStr është sensitive. Le ta zbulojmë këtë me një shembull.
Shih kodin e mëposhtëm VBA , ku ne donim të gjenim pozicionin e fjalës " Zgjedhja ” me një kapitale “C” në vargun “ Lumturia është një zgjedhje ” ku zgjedhja shkruhet me një “c” të vogël .
- ekzekutoni kodin dhe gjeni 0 si daljen tonë.
Kjo për shkak se funksioni InStr trajton ndryshe kapitali "C" dhe "c" i vogël . Kështu që kërkoi fjalën " Zgjedhja " në varg dhe nuk gjeti asnjë përputhje, kështu që u kthye 0 .
- Për ta bërë funksionin InStr të pandjeshëm ndaj shkronjave të vogla , vendosni argumentin e krahasimit në vbTextCompare (shih më poshtë).
7609
- ekzekutoni kodin.
Do të merrni pozicionin e tekstit nga vargu, pavarësisht nëse teksti është shkruar me shkronja të mëdha ose me shkronja të vogla .
4. VBA për të gjetur tekstin nga e djathta e vargut
Deri tani funksioni InStr na jepte pozicionin vetëm nga ana e majtë e vargut. Por çfarë nëse dëshironi të gjeni pozicionin e tekstit nga ana e djathtë e vargut.
Funksioni InStrRev kërkon nga e djathta. Funksioni InStrRev funksionon shumë ngjashëm me funksionin InStr dhe do t'ju gjejë pozicionin e një teksti nga ana e djathtë e vargut.
Shihni shembujt e mëposhtëm për të kuptuar ndryshimin.
- Nëse ekzekutojmë kodin e mëposhtëm me funksionin InStr atëherë,
na jep pozicionin ( 16 ) të tekstit të parë " zgjedhja ".
- Por nëse ekzekutojmë të njëjtin kod me funksionin InStrRev atëherë,
na jep pozicionin ( 27 ) të tekstit të fundit " zgjedhja ".
Lexime të ngjashme:
- Find Next duke përdorur VBA në Excel (2 shembuj)
- Si të gjeni dhe zëvendësoni duke përdorur VBA (11 mënyra)
- Gjeni përputhjen e saktë duke përdorur VBA në Excel (5 mënyra)
5. VBA për të gjetur pozicionin e një karakteri në varg
Mund të gjeni gjithashtu pozicionin e një karakteri të caktuar në një varg në të njëjtën mënyrë që gjetët tekstin.
- Kopjo kodin e mëposhtëm në dritaren tuaj të kodit VBA
9056
- Dhe ekzekutoni makro.
“ e ” i parë në vargun tonë të dhënë është nënumri 7 pozicioni.
6. VBA për të gjetur nënvarg në një varg
Këtu do të mësojmë se si të gjejmë nëse një varg përmban një nënvarg apo jo.
Për ta marrë atë, ne kemi për të ekzekutuar një Deklaratë IF në kodin tonë.
- Njëlloj si më parë, hapni Visual Basic Editor nga skeda Zhvilluesi dhe Fut një Modul në dritaren e kodit.
- Në dritaren e kodit, kopjoni kodin e mëposhtëm dhe ngjisni atë.
2189
Juaj kodi tani është gati për të ekzekutuar.
- Ekzekutoni makro.
Nëse vargu juaj përmban nënvargun atëherë do të merrni një përputhje të gjetur , përndryshe, nuk do të kthejë asnjë përputhje. Në shembullin tonë, ne donim të zbulonim nëse vargu ynë kryesor " Lumturia është një zgjedhje " përmban fjalën " zgjedhja " ose jo. Ashtu siç ndodh, marrim një rezultat U gjet përputhja .
7. VBA për të gjetur vargun në një varg qelizash
Mund të kërkoni për një tekst të caktuar në një varg qelizash të vargut dhe të ktheni një varg të caktuar.
Shikoni shembullin e mëposhtëm ku do të gjeni " Dr. " dhe kur të ketë një përputhje do të kthehet " Doktor ".
- Më poshtë është kodi për të marrë rezultatin e diskutuar më lart,
6867
- Run kodi dhe rezultati tregohet më poshtë
- Mund ta modifikoni makro sipas nevojës tuaj. Për shembull, nëse dëshironipër të gjetur " Prof. " në çdo qelizë të vargut dhe për të marrë " Profesor " si kthim, pastaj thjesht kaloni " Prof. ” si vlerë në vend të “ Dr .” në rreshtin e 4-të të makros dhe “ Profesor ” në vend të “ Doktor ” në rreshtin e 5-të të makros dhe përcaktoni numri i gamës së qelizave në përputhje me rrethanat.
8. VBA për të gjetur vargun në një qelizë
Mund gjithashtu të kërkoni një tekst të caktuar në një qelizë të vetme vargu dhe të ktheni një varg të caktuar.
- Kopjo kodin e mëposhtëm dhe ngjite atë në dritaren e kodit.
3242
Do të kërkojë " Dr. ” në Qeliza B5 dhe nëse gjen përputhshmërinë, atëherë kthen " Doktor " në Qelizën C5 .
- Mund ta modifikoni makro sipas nevojës tuaj. Për shembull, nëse doni të gjeni " Prof. " në çdo qelizë të vargut dhe merrni " Profesor " si kthim, pastaj thjesht kaloni " Prof. " si vlerë në vend të " Dr ." në rreshtin e dytë të makros dhe " Profesor " në vend të " Doktor " në rreshtin e tretë të makros dhe përcaktoni Numri i referencës së qelizës në përputhje me rrethanat.
Përfundim
Ky artikull ju tregoi se si të gjeni tekste të caktuara në varg në Excel duke përdorur makro VBA. Shpresoj se ky artikull ka qenë shumë i dobishëm për ju. Mos ngurroni të bëni çdo pyetje në lidhje metema.