TROVI funkcion en VBA: Kiel uzi ĝin?

volas lerni kiel uzi TROVI funkcion en VBA🇧🇷 Tiam vi estas en la ĝusta loko!

Kiu ne konas la opcion SEARCH en Excel? Se vi laboras kun Excel dum kelka tempo, vi verŝajne uzis la SERĈU-funkcion aŭ la popularan klavon Ctrl + L por lokalizi vorton aŭ enhavon, kiun vi volas serĉi en via tuta laborfolio. kiel la tuta laborlibro.

Ankaŭ, en VBA ni havas funkcion nomitan FIND, kiu povas helpi nin trovi la valoron, kiun ni serĉas.

Sekvu la detalojn sube por lerni pli pri ĉi tiu funkcio per praktikaj ekzemploj.

Kiel funkcias la funkcio FIND en VBA?

La Excel VBA FIND-funkcio serĉas specifan valoron ene de specifa intervalo. Serĉas la unuan aperon de tiu valoro, kaj se trovita, la funkcio resendas la ĉelon kiu enhavas ĝin. Tamen, se neniu kongruo estas trovita, la funkcio resendas nenion. La funkcio VBA FIND povas resendi precizan aŭ partan kongruon.

Ekzemple, la sekva kodo serĉas la tekston "Sankta Paŭlo» en la intervalo A1: A10 en "Laborfolio1🇧🇷

Kun Folioj ("Folio1"). Gamo ("A1:A10")
Agordu Rng = .Trovu(Kio:="San-Paŭlo")

La celo uzi la funkcion FIND en VBA estas trovi la deziratan valoron en donita datumaro. Kun VBA-kodo, vi povas aŭtomatigi la taskon trovi valorojn en Excel.

VBA FIND Funkcia Sintakso

La VBA FIND-funkcia sintakso estas deklarita jene:

esprimo.Trovu (Kio, Post, Rigardu, Rigardu, Serĉordon, Serĉdirekton, MatchCase, MatchByte, SerĉFormato)

Kie:

esprimo: estas la intervalobjekto, kiu antaŭas la funkcion FIND en la VBA-kodo. La serĉintervalo povas esti unu aŭ pluraj vicoj, kolumnoj aŭ la tuta kalkultabelo. La funkcio VBA FIND akceptas la sekvajn argumentojn:

  • Qué: Ĉi tiu estas la valoro por serĉi. Ĝi povas esti nombra, teksta aŭ ajna alia Excel-datumtipo. Ĉi tiu argumento estas la sama kiel la Trovu opcio de la "trovi kaj anstataŭigi” de Excel.
  • Post: Indikas la ĉelon el kiu komenciĝos la serĉo. Ĝi estas enigita kiel ununura ĉela referenco. Se ĉi tiu argumento estas ellasita, la serĉo komenciĝas post la ĉelo en la supra maldekstra angulo de la specifita serĉa gamo.
  • Rigardu: Ĉi tiu estas la loko (aŭ datumoj) kie la valoro devus esti serĉita. Ĝi povas esti komento (xlComments), formulo (xlFormulas) aŭ valoro (xlValues). La defaŭlta valoro por ĉi tiu argumento estas xlFormulas. Ankaŭ, ĉi tiu argumento estas la sama kiel la Trovu opcio de la "trovi kaj anstataŭigi” de Excel.
  • Rigardu: Ĉi tiu argumento decidas ĉu kongrui kun la tuta ĉelenhavo (preciza kongruo) aŭ parto de la ĉelenhavo (parta kongruo). La konstantoj estas xlWhole kaj xlPart por precizaj kaj partaj kongruoj, respektive. La defaŭlta valoro por ĉi tiu argumento estas xlPart.
  • Serĉordo: Ĉi tiu argumento sugestas la serĉordon. Vi povas specifi ĉu la serĉo estos en vicoj (xlByRows) aŭ kolumnoj (xlByColumns). La defaŭlta valoro por ĉi tiu argumento estas xlByRows. Ankaŭ, ĉi tiu argumento estas la sama kiel la Trovu opcio de la "trovi kaj anstataŭigi” de Excel.
  • Serĉadreso: Indikas la adreson en kiu la serĉo estos farita. Vi povas serĉi malsupren aŭ al la sekva ĉelo per la konstanto xlNext. Alternative, vi povas serĉi malantaŭen (supren) aŭ en la antaŭa ĉelo kun la xlAntaŭa konstanto. La defaŭlta valoro por ĉi tiu argumento estas xlNext.
  • Kongrua kazo: Ĉi tiu argumento decidas ĉu la serĉo devus esti usklesentema aŭ ne. Se la serĉo distingas minusklecon, ĉi tiu argumento estas specifita kiel vera (VERA), alie ĝi estas malvera (FALSE). La defaŭlta valoro por ĉi tiu argumento estas False.
  • MatchByte: Ĉi tiu argumento estu uzata se iu instalis aŭ elektis duoblan lingvan subtenon. Devas esti specifita kiel veraj se dubajtaj signoj kongruas kun dubajtaj signoj. Devus esti specifita kiel falsa se dubajtaj signoj estas kongruaj kun siaj unubajtaj ekvivalentoj.
  • serĉformato: Indikas ĉu la serĉenda valoro estu en specifa formato (kiel grasa aŭ kursiva) aŭ ne. Se la serĉvaloro devas sekvi formatan teknikon, ĉi tiu argumento estas specifita kiel vera, alie falsa. La defaŭlta valoro de ĉi tiu argumento estas falsa (FALSE).

nur la argumento kio Estas necesa. La aliaj argumentoj estas laŭvolaj.

La funkcio FIND liveras unu el la sekvaj rezultoj:

  • Se kongruo estas trovita, la funkcio resendas la unuan ĉelon kie la valoro estas trovita.
  • Se neniu kongruo estas trovita, la funkcio resendas nenion. Ĉi tio estas ĉar la funkciobjekto estas agordita al nenio.

Alternative, se neniu kongruo estas trovita, kutima mesaĝo specifita per la mesaĝkesto funkcio povas esti resendita (vidu kodekzemplojn malsupre).

Noto 1: La serĉo komenciĝas post la ĉelo specifita en la argumento. Poste kaj daŭrigas ĝis la lasta ĉelo en la serĉa gamo. Se la valoro ne estas trovita ĝis ĉi tiu lasta ĉelo, la serĉo komenciĝas denove de la unua ĉelo en la serĉa gamo ĝis la ĉelo specifita en la argumento. Poste🇧🇷

Tial, la ĉelo specifita en la argumento Poste ĝi estas serĉata ĉe la fino de la serĉprocezo. Por pliaj detaloj pri la uzo de la argumento Postevidu la duan ekzemplon en ĉi tiu artikolo.

Noto 2: Ĉiufoje kiam la funkcio VBA FIND estas uzata, la enrigardu🇧🇷 Rigardu🇧🇷 serĉordo y MatchByte Sekve, se ĉi tiuj valoroj estas preterlasitaj la venontan fojon kiam la funkcio estos uzata, Excel uzos la antaŭe konservitajn valorojn. Tial oni rekomendas eksplicite deklari la provizitajn argumentojn kiam ajn la serĉo estas farita per la funkcio VBA FIND.

Kiel uzi la funkcion FIND en Excel VBA?

Por ke vi komprenu la uzon de la funkcio FIND en VBA, ni apartigis kelkajn praktikajn ekzemplojn sube.

Ekzemplo 1: Elektante la ĉelon kun la unua okazo de la serĉvaloro

En ĉi tiu unua ekzemplo, supozu, ke vi havas liston, kiu enhavas kelkajn nomojn kiel montrite en la bildo sube, kaj vi volas foliumi kaj elekti la ĉelon kiu enhavas la nomon. pedro🇧🇷

De tie, sekvu ĉi tiujn paŝojn:

1. Aliru la gvidilon Ellaboranto 🇧🇷 vida baza🇧🇷 (Se vi ne havas la langeton Ellaboranto ebligita en via Excel, kontrolu ĉi tie paŝon post paŝo).

ellaborista gvidilo

du. Sur la VBA-ekrano, elektu la deziratan laborfolion el la menuo maldekstre. En ĉi tiu ekzemplo, ni elektos la Laborfolio1 kiu estas la laborfolio kiu enhavas la liston de nomoj.

3. Post elekto de la dezirata laborfolio, en la areo dekstre, enigu la kodon sube:

Elektu la ĉelon kun la unua okazo de la serĉita valoro

Sub LocateName ()
Gamo("A1:A10").Trovu(Kio:="Petro").Elektu
Fino Sub
  • Rimarku en la supra kodo, ke ni menciis la gamon, kiun ni serĉas (A1: A10🇧🇷
  • Menciinte la gamon, metu punkton (.) kaj tajpu TROVI🇧🇷
  • Nia unua argumento estas tio, kion ni serĉas. Por reliefigi la argumenton, ni povas pasi la argumenton kio:=ĉi tio estos utila por identigi al kiu parametro ni aludas.
  • La fina parto estas post trovi la vorton, kion ni volas fari. Ni devas elekti la vorton, do pasigu la argumenton kiel Elektu🇧🇷
  • Poste rulu ĉi tiun kodon per la ŝlosilo F5 aŭ permane kiel montrite en la suba bildo por elekti la unuan ĉelon enhavantan la nomon pedro🇧🇷

lokalizi en VBA

Ekzemplo 2: Elektu la ĉelon kun la dua okazo de la serĉvaloro

En ĉi tiu dua ekzemplo, notu, ke la sekva bildo enhavas kelkajn nomojn en la gamo A1:A10. Notu, ke la nomo "pedro” aperas dufoje en kolumno A.

Elektu la ĉelon kun la dua okazo

En ĉi tiu kazo, ni volas serĉi kaj elekti la dua okazo de la nomo "Petro" en kolumno A (tio estas ĉelo A7). Por fari tion ni uzos la jenan kodon:

TROVU duan aperon de VBA

Sub LocateName ()
Gamo("A1:A10").Trovu(Kio:="Petro", Post:=Gamo("A2")).Elektu
Fino Sub

Rimarku en la supra kodo, ke la serĉo komenciĝas post ĉelo A2 kaj daŭras ĝis la lasta ĉelo en kolumno A. Ĉi tio estas ĉar la serĉa gamo estis specifita kiel kolumno A (A1:A10).

Do, ĉar la serĉo komenciĝas en ĉelo A3, la valoro "pedro” estas en la ĉelo A7 donas"Tabelfolio2🇧🇷 Sekve, ĉelo A7 estos elektita de la funkcio FIND dum plenumado de la kodo.

Se la nomo «pedro” ne estis trovita en ĉelo A3 ĝis la lasta ĉelo en kolumno A, la serĉo denove komenciĝus ĉe ĉelo A1 kaj finiĝos ĉe ĉelo A2 ĉi-foje. Tial, la ĉelo specifita en la argumento "Poste” estas serĉata ĝuste ĉe la fino de la serĉprocezo.

Ekzemplo 3: Trovu tekston specifante kelkajn el ĝiaj signoj

Por serĉi tekston specifante nur parton de ĝi, enigu la argumenton Rigardu kiel xlParto aŭ ellasu ĉi tiun argumenton. Defaŭlte, la funkcio FIND kongruas la signojn en la serĉvaloro kun la tuta ĉeno. Ĝi tiam resendas la ĉelon kiu enhavas ĉi tiun tutan ĉenon.

Rigardu la ekzemplon sube:

Sub LocateName ()
Gamo("A1:A10").Trovu(Kio:="Ped", Rigardu:=xlParto).Elektu
Fino Sub

Ĉi tiu kodo serĉas la signojn "Ped” en la gamo A1:A25 de “Sheet3”. La ĉelo enhavanta la valoron estas resendita, kiu estas nomita parta korespondado🇧🇷 Do, sendepende de ĉu la serĉvaloraj signoj estas metitaj ĉe la komenco, mezo aŭ fino de la ĉeno, Excel VBA resendas kongruon.

Observado: la konstanto xlParto ĝi povas esti preterlasita de la kodo ĉar ĝi estas la defaŭlta valoro de la funkcio FIND. Sed se ĉi tiu argumento estas specifita, certigu, ke ĝi ne estas enfermita inter citiloj.

Ekzemplo 4: Trovi tekston ene de komento

Vi ankaŭ povas uzi la funkcion VBA FIND por trovi tekston en ĉela komento en Excel.

Por pli bona kompreno, rigardu la ekzemplon sube, kie ni havas laborfolion, kiu enhavas tri ĉelojn kun komentoj (indikita de la ruĝaj trianguloj). El tio ni volas trovi la tekston "komisiono pagita” situanta ene de unu el la komentoj. En ĉi tiu kazo, ni uzos la sekvan kodon:

Suba LokiKomento ()
Gamo("A1:B10").Trovu(Kio:="Komisiono Pagas", LookIn:=xlKomentoj).Elektu
Fino Sub

Trovu tekston en komento

Kiel rezulto, Excel nur elektos la ĉelon, kiu enhavas la komenton, kies teksto estis specifita en nia kodo.

Ekzemplo 5: Pritraktado de eraroj en la funkcio FIND en VBA

Se la teksto, kiun ni serĉas, ne estas en la donita intervalo, VBA resendos eraron kiel montrite sube:

eraro 91

Por eviti ĉi tiun eraron, ni povas uzi kodon kiel montrite sube:

Sub LocateName ()
Malklara Rezulto Kiel Variaĵo

Sur Eraro Rekomenci Poste
Gamo("A1:A10").Trovu(Kio:="Cristina").Elektu
Je Eraro GoTo 0

Rezulto = ActiveCell.Value

Se Rezulto = "" Tiam
MsgBox "La valoro, kiun vi serĉas, ne disponeblas en la provizita intervalo!"
Eliri Sub
fini Se

Fino Sub

Rimarku en la supra kodo, ke se VBA trovas la valoron, ĝi montros la trovitan valoron, aŭ alie ĝi montros la mesaĝon kiel "La valoro, kiun vi serĉas, ne disponeblas en la donita intervalo🇧🇷

Por pliaj konsiletoj pri kiel ripari VBA-erarojn, rigardu la artikolon: Excel VBA-eraroj: ĉio, kion vi bezonas scii!

Detaloj memorindaj

  • La funkcio FIND estas parto de la posedaĵo RANGE kaj vi devus uzi FIND post elekto nur de la intervalo.
  • En la funkcio FIND, la unua argumento (kio), plus ĉio alia estas laŭvola.
  • Se vi trovas la valoron post specifa ĉelo, vi povas mencii la ĉelon en la parametro Poste de la serĉsintakso.

Elŝutu la kalkultabelon ĉi tie enhavante la ekzemplojn prezentitajn en ĉi tiu lernilo.

Rigardu ankaŭ la jenajn Excel-konsiletojn:

Do kion vi pensas pri la funkcio FIND en VBA? Se vi havas demandojn, lasu vian komenton sube. Ankaŭ rigardu pli da Excel kaj VBA-konsiletoj en nia retejo!

Tommy Banks
Ni ĝojos aŭdi kion vi pensas

lasu respondon

TechnoBreak | Ofertoj kaj Recenzoj
Logo
Ebligu registradon en agordojn - ĝenerala
Aĉetoĉaro