Si të gjeni vargun me VBA në Excel (8 shembuj)

  • Shperndaje Kete
Hugh West

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.
  • Si parazgjedhje, funksioni InStr llogarit pozicionin e karakterit duke numëruar nga 1, jo nga pozicioni fillestar. Pra, mund ta lini këtë bosh nëse dëshironi.
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,
  • vbBinaryCompare -> kryen një krahasim binar, vlera e kthyer 0
  • vbTextCompare -> kryen një krahasim teksti, kthen vlerën 1
  • vbDatabaseCompare -> kryen një krahasim të bazës së të dhënave, kthen vlerën 2

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.

Hugh West është një trajner dhe analist me përvojë të lartë në Excel me mbi 10 vjet përvojë në industri. Ai ka një diplomë Bachelor në Kontabilitet dhe Financë dhe një Master në Administrim Biznesi. Hugh ka një pasion për mësimdhënien dhe ka zhvilluar një qasje unike të mësimdhënies që është e lehtë për t'u ndjekur dhe kuptuar. Njohuritë e tij eksperte të Excel-it kanë ndihmuar mijëra studentë dhe profesionistë në mbarë botën të përmirësojnë aftësitë e tyre dhe të shkëlqejnë në karrierën e tyre. Nëpërmjet blogut të tij, Hugh ndan njohuritë e tij me botën, duke ofruar mësime falas në Excel dhe trajnime në internet për të ndihmuar individët dhe bizneset të arrijnë potencialin e tyre të plotë.