Kiel Trovi Ŝnuron kun VBA en Excel (8 Ekzemploj)

  • Kundividu Ĉi Tion
Hugh West

Efektivigo de VBA estas la plej efika, plej rapida kaj sekura metodo por fari ajnan operacion en Excel. En ĉi tiu artikolo, ni montros al vi kiel trovi certajn ĉenojn en alia donita ĉeno uzante VBA en Excel.

Elŝutu Praktikan Ŝablonon

Vi povas elŝuti la senpagan ekzercan Excel-ŝablonon de ĉi tie.

VBA por Trovi en String.xlsm

InStr Funkcio

Microsoft Excel havas enkonstruitan funkcion nomitan la InStr-Funkcio por trovi la pozicion de specifaj ĉenoj en donita Ŝnuro.

Ĝenerala Sintakso:

InStr([start], string1, string2, [compare])

Ĉi tie,

Argumentoj Bezonata/Laŭvola Difino
komenco Nedeviga Komenca pozicio de la serĉo.
  • Defaŭlte, la funkcio InStr kalkulas la signopozicion kalkulante de 1, ne de la komenca pozicio. Do, vi povas lasi ĉi tion malplena se vi volas.
string1 Bezonata La ĉeno serĉenda, Primary String.
string2 Bezonata La ĉeno serĉenda en la ĉefa ĉeno .
komparu Laŭvola La funkcio InStr defaŭlte distingas minusklecojn. Sed se vi volas ruli majuskklecon InStr , tiam vi povas pasigi la argumenton ĉi tie por fari certan komparon. Ĉi tiu argumento povas esti la sekvavaloroj,
  • vbBinaryCompare -> faras binaran komparon, redonas valoron 0
  • vbTextCompare -> faras tekstan komparon, redonas valoron 1
  • vbDatabaseCompare -> faras datumbazan komparon, redonas valoron 2

Defaŭlte, InStr prenas vbBinaryCompare kiel la kompara argumento.

8 Facilaj Ekzemploj por Trovi Specifan Pozicion de Ŝnuroj en Donita Ŝnuro Uzante VBA

Ni vidu kelkajn simplajn ekzemplojn por akiri la poziciojn de certaj ŝnuroj en donita ŝnuro uzante VBA .

1. VBA por Trovi Pozicion de Teksto en Ŝnuro

Malsupre estas ekzemplo de InStr por trovi la pozicio de teksto en ĉeno.

  • Premu Alt + F11 sur via klavaro aŭ iru al la langeto Programisto -> Visual Basic por malfermi Visual Basic Editor .

  • En la ŝpruckoda fenestro, de la menubreto , alklaku Enmeti -> Modulo .

  • Nun en la kodfenestro, skribu simplan InStr programon ene de VBA Sub Proceduro (vidu malsupre).
2273

Via kodo nun estas preta ruliĝi.

  • Premu F5 sur via klavaro aŭ el la menubreto elektu Run -> Rulu Sub/UserForm . Vi ankaŭ povas simple alklaki la malgrandan Ludpikonon en la submenubreto por ruli la makroon.

Vi vidos ke la pop-up mesaĝkesto donos al vi numerondeklarante la pozicion de la teksto kiun vi volis kontroli.

Klarigo:

Nia ĉefa ĉeno, “ Feliĉo. estas elekto ” estas 21 litera frazo (kun spacoj) kaj ni volis trovi la pozicion de la teksto “ elekto ” en tiu ĉeno. La teksto " elekto " komenciĝis de la 16-a pozicio de la primara ĉeno, tial ni ricevis numeron 16 kiel nia eligo en la mesaĝkesto.

2. VBA por Trovi Tekston de Specifa Pozicio en Ŝnuro

Nun ni eksciu, kio okazus se ni volus ricevi la pozicion de certa nombro.

  • Sammaniere kiel antaŭe, malfermu Visual Basic Editor el la langeto Programisto kaj Enigu Modulo en la kodfenestro.
  • En la kodfenestro, skribu simplan InStr -programon montritan supre kaj transdonu la valoron en la startargumento laŭ la pozicio de kiu vi volas kalkuli vian tekston.
5546

  • Sekva, Rulu la kodon.

Vi vidos, ke la ŝprucfenestra mesaĝkesto estos doni al vi numeron deklarantan la pozicion de la teksto komencante de certa pozicio kiun vi volis kontroli.

Klarigo:

Kiel ni jam sciis (el la fazo 1 diskuto), ke la teksto “ elekto ” komenciĝas de la pozicio de 16 , do ni enmetis du “ elekto ” en la ĉefa ĉeno kaj agordu 17 kiel nia1-a parametro por salti la unuan " elekto ". Do, ni Rudu la ĉi-supran makroon kaj ĝi montris al ni pozicinumeron 27 kiu estas ĝuste la pozicionumero de la dua " elekto " en la donita ĉeno.

3. VBA por Trovi Tekston kun Majusksence-nedistinga InStr-Funkcio en Ŝnuro

De la enkonduko de la funkcio InStr vi jam scias, ke defaŭlte, la funkcio InStr estas usklecsentema. Ni eksciu tion per ekzemplo.

Vidu la sekvan VBA -kodon, kie ni volis trovi la pozicion de la vorto “ Elekto ” kun majusklo “C” en la ĉeno “ Feliĉo estas elekto ” kie elekto estas skribita kun malgranda “c” .

  • Ruli la kodon kaj trovi 0 kiel nia eligo.

Tio estas ĉar la InStr funkcio traktas majusklan “C” kaj malgrandan “c” malsame. Do ĝi serĉis la vorton “ Elekto ” en la ĉeno kaj ne ricevis ajnan kongruon, do revenis 0 .

  • Por igi la funkcion InStr majuskle-maldistinga , agordu la komparan argumenton al vbTextCompare (vidu malsupre).
6658

  • Rulu la kodon.

Vi ricevos la pozicion de la teksto. de la ĉeno, ĉu la teksto estas skribita per majuskloj aŭ malgrandaj literoj .

4. VBA por Trovi Tekston de la Dekstro de Ŝnuro

Ĝis nun la InStr funkcio nur donis al ni la pozicion de la maldekstra flanko de la ŝnuro. Sed kio se vi volas trovi la tekstopozicion de la dekstra flanko de la ĉeno.

La InStrRev Funkcio serĉas dekstre. La funkcio InStrRev funkcias tre simile al la funkcio InStr kaj ĝi trovos al vi la pozicion de teksto de la dekstra flanko de la ĉeno.

Vidu la sekvajn ekzemplojn por kompreni la diferencon.

  • Se ni rulas la jenan kodon per la funkcio InStr tiam,

ĝi donas al ni la pozicion ( 16 ) de la unua teksto “ elekto ”.

  • Sed se ni rulas la saman kodon kun la InStrRev Funkcio tiam,

ĝi donas al ni la pozicion ( 27 ) de la lasta teksto “ elekto ”.

Similaj legaĵoj:

  • Trovu Sekva Uzanta VBA en Excel (2 Ekzemploj)
  • Kiel Trovi kaj Anstataŭigi Uzanta VBA (11 Manieroj)
  • Trovu Precizan Kongruon Uzante VBA en Excel (5 Manieroj)

5. VBA por Trovi pozicion de Signo en Ŝnuro

Vi ankaŭ povas trovi la pozicion de certa signo en ĉeno en la sama maniero kiel vi trovis tekston.

  • Kopiu la sekvan kodon en vian VBA -kodfenestron
8574

  • Kaj Rulu la makroon.

La unua “ e ” en nia donita ĉeno estas jela nombro 7 pozicio.

6. VBA por Trovi Subŝnuron en Ŝnuro

Ĉi tie ni lernos kiel trovi ĉu ĉeno enhavas subĉenon aŭ ne.

Por akiri tion, ni havas por ruli IF Statement en nia kodo.

  • Sammaniere kiel antaŭe, malfermu Visual Basic Editor de la langeto Developer kaj Enigu a Modulo en la kodfenestro.
  • En la kodfenestro, kopiu la sekvan kodon kaj algluu ĝin.
6169

Via kodo nun estas preta por ruliĝi.

  • Ruli la makroon.

Se via ĉeno enhavas la subĉenon tiam vi ricevos kongruon trovitan , alie, ĝi ne resendos neniun kongruon trovitan. En nia ekzemplo, ni volis ekscii ĉu nia ĉefa ĉeno “ Feliĉo estas elekto ” enhavas la vorton “ elekto ” aŭ ne. Kiel ĝi faras, ni ricevas rezulton de Kongruo trovita .

7. VBA por Trovi Ŝnuron en Ĉela Gamo

Vi povas serĉi certan tekston en ĉela gamo de ĉeno kaj redoni certan ĉenon.

Rigardu la sekvan ekzemplon kie ni faros trovi “ Dr. ” kaj kiam estas kongruo ĝi revenos “ Doktoro ”.

  • Malsupre estas la kodo por ricevi la rezulton diskutitan supre,
9169

  • Ruli la kodo kaj la rezulto estas montrita sube

  • Vi povas modifi la makroon laŭ via bezono. Ekzemple, se vi volaspor trovi “ Prof. ” en iu ajn ĉelo de ĉeno, kaj ricevi “ Profesoro ” kiel revenon, tiam simple pasi “ Prof. ” kiel la valoro anstataŭ “ Dr .” en la 4-a linio de la makroo kaj “ Profesoro ” anstataŭ “ Doktoro ” en la 5-a linio de la makroo kaj difinu la ĉela gamo nombro laŭe.

8. VBA por Trovi ĉenon en ĉelo

Vi ankaŭ povas serĉi certan tekston en ununura ĉelo de ĉeno kaj redoni certan ĉenon.

  • Kopiu la sekvan kodon kaj algluu ĝin en la kodfenestron.
5250

Ĝi serĉos “ Dr. ” en Ĉelo B5 kaj se ĝi trovas la kongruon tiam liveras “ Doktoro ” en Ĉelo C5 .

  • Vi povas modifi la makroon laŭ via bezono. Ekzemple, se vi volas trovi " Prof. " en iu ajn ĉelo de ĉeno, kaj ricevi " Profesoro " kiel revenon, tiam simple transdonu " Prof. " kiel la valoron anstataŭ " Dr ." en la 2-a linio de la makroo kaj “ Profesoro ” anstataŭ “ Doktoro ” en la 3a linio de la makroo kaj difinu la ĉela referenca numero laŭe.

Konkludo

Ĉi tiu artikolo montris al vi kiel trovi iujn tekstojn en ĉeno en Excel uzante VBA-makroon. Mi esperas, ke ĉi tiu artikolo estis tre utila al vi. Bonvolu demandi ajnajn demandojn prila temo.

Hugh West estas tre sperta Excel-trejnisto kaj analizisto kun pli ol 10 jaroj da sperto en la industrio. Li tenas bakalaŭron en Kontado kaj Financo kaj magistron en Komercadministracio. Hugh havas entuziasmon por instruado kaj evoluigis unikan instruan aliron kiu estas facile sekvi kaj kompreni. Lia sperta scio pri Excel helpis milojn da studentoj kaj profesiuloj tutmonde plibonigi siajn kapablojn kaj elstari en siaj karieroj. Per sia blogo, Hugh dividas sian scion kun la mondo, proponante senpagajn Excel-lernilojn kaj interretan trejnadon por helpi individuojn kaj entreprenojn atingi sian plenan potencialon.