Funcția FIND în VBA: Cum se utilizează?

vrei să înveți cum să folosești Funcția FIND în VBA🇧🇷 Atunci ești în locul potrivit!

Cine nu cunoaște opțiunea CĂUTARE în Excel? Dacă lucrați cu Excel de ceva vreme, probabil că ați folosit funcția CĂUTARE sau populara tastă de comandă rapidă Ctrl + L pentru a localiza un cuvânt sau o bucată de conținut pe care doriți să o căutați în întreaga fișă de lucru. ca tot registrul de lucru.

De asemenea, în VBA avem o funcție numită FIND care ne poate ajuta să găsim valoarea pe care o căutăm.

Urmați detaliile de mai jos pentru a afla mai multe despre această caracteristică prin exemple practice.

Cum funcționează funcția FIND în VBA?

Funcția Excel VBA FIND caută o anumită valoare într-un anumit interval. Caută prima apariție a acelei valori și, dacă este găsită, funcția returnează celula care o conține. Totuși, dacă nu se găsește nicio potrivire, funcția nu returnează nimic. Funcția VBA FIND poate returna o potrivire exactă sau parțială.

De exemplu, următorul cod caută textul „San Pablo» în interval A1: A10 în "Fișa de lucru 1🇧🇷

Cu foi ("Sheet1").Range ("A1:A10")
Set Rng = .Find(What:="São Paulo")

Scopul utilizării funcției FIND în VBA este de a găsi valoarea dorită într-un set de date dat. Cu un cod VBA, puteți automatiza sarcina de a găsi valori în Excel.

Sintaxa funcției VBA FIND

Sintaxa funcției VBA FIND este declarată după cum urmează:

expression.Find (Ce, După, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

În cazul în care:

expresie: este obiectul interval, care precede funcția FIND în codul VBA. Intervalul de căutare poate fi unul sau mai multe rânduri, coloane sau întreaga foaie de calcul. Funcția VBA FIND acceptă următoarele argumente:

  • Ce: Aceasta este valoarea de căutat. Poate fi numeric, textual sau orice alt tip de date Excel. Acest argument este același cu opțiunea Găsiți din „găsiți și înlocuiți” din Excel.
  • După: Indică celula din care va începe căutarea. Este introdus ca referință de celulă unică. Dacă acest argument este omis, căutarea începe după celula din colțul din stânga sus al intervalului de căutare specificat.
  • Uită-te în: Aceasta este locația (sau datele) în care ar trebui căutată valoarea. Poate fi un comentariu (xlComments), o formulă (xlFormulas) sau o valoare (xlValues). Valoarea implicită pentru acest argument este xlFormulas. De asemenea, acest argument este același cu opțiunea Găsiți din „găsiți și înlocuiți” din Excel.
  • Uite: Acest argument decide dacă se potrivește întregul conținut al celulei (potrivire exactă) sau o parte din conținutul celulei (potrivire parțială). Constantele sunt xlWhole și xlPart pentru potriviri exacte și, respectiv, parțiale. Valoarea implicită pentru acest argument este xlPart.
  • Ordine de căutare: Acest argument sugerează ordinea de căutare. Puteți specifica dacă căutarea va fi în rânduri (xlByRows) sau coloane (xlByColumns). Valoarea implicită pentru acest argument este xlByRows. De asemenea, acest argument este același cu opțiunea Găsiți din „găsiți și înlocuiți” din Excel.
  • Adresa de cautare: Indică adresa în care se va efectua căutarea. Puteți căuta în jos sau la următoarea celulă cu constanta xlNext. Alternativ, puteți căuta înapoi (în sus) sau în celula anterioară cu constanta xlPrevious. Valoarea implicită pentru acest argument este xlNext.
  • Se potrivește caz: Acest argument decide dacă căutarea ar trebui să țină cont de majuscule sau nu. Dacă căutarea este sensibilă la majuscule și minuscule, acest argument este specificat ca adevărat (TRUE), în caz contrar, este fals (FALSE). Valoarea implicită pentru acest argument este False.
  • MatchByte: Acest argument ar trebui folosit dacă cineva a instalat sau a selectat suport pentru limbă pe doi octeți. Trebuie specificat ca adevărat dacă caracterele pe doi octeți trebuie să se potrivească cu caracterele pe doi octeți. Ar trebui să fie specificat ca fals dacă caracterele pe doi octeți trebuie să fie potrivite cu echivalentele lor pe un singur octet.
  • format de căutare: Indică dacă valoarea de căutat trebuie să fie într-un anumit format (cum ar fi aldine sau cursive) sau nu. Dacă valoarea de căutare trebuie să urmeze o tehnică de formatare, acest argument este specificat ca adevărat, în caz contrar fals. Valoarea implicită a acestui argument este false (FALSE).

doar argumentul ce necesar. Celelalte argumente sunt optionale.

Funcția FIND returnează unul dintre următoarele rezultate:

  • Dacă se găsește o potrivire, funcția returnează prima celulă în care este găsită valoarea.
  • Dacă nu se găsește nicio potrivire, funcția nu returnează nimic. Acest lucru se datorează faptului că obiectul funcție este setat la nimic.

Alternativ, dacă nu se găsește nicio potrivire, un mesaj personalizat specificat prin intermediul funcția casetă de mesaje poate fi returnat (vezi exemplele de cod de mai jos).

Notă 1: Căutarea începe după celula specificată în argument. atunci și continuă până la ultima celulă din intervalul de căutare. Dacă valoarea nu este găsită până la această ultimă celulă, căutarea începe din nou de la prima celulă din intervalul de căutare până la celula specificată în argument. atunci🇧🇷

Prin urmare, celula specificată în argument atunci se caută la sfârșitul procesului de căutare. Pentru mai multe detalii despre utilizarea argumentului atuncivezi al doilea exemplu din acest articol.

Notă 2: De fiecare dată când este utilizată funcția VBA FIND, uită-te în🇧🇷 Uite🇧🇷 ordinea de căutare y MatchByte sunt salvate. Prin urmare, dacă aceste valori sunt omise la următoarea utilizare a funcției, Excel va folosi valorile salvate anterior. Prin urmare, se recomandă declararea explicită a argumentelor furnizate ori de câte ori căutarea este efectuată folosind funcția VBA FIND.

Cum se utilizează funcția FIND în Excel VBA?

Pentru a înțelege utilizarea funcției FIND în VBA, am separat câteva exemple practice mai jos.

Exemplul 1: Selectarea celulei cu prima apariție a valorii de căutare

În acest prim exemplu, să presupunem că aveți o listă care conține unele nume așa cum se arată în imaginea de mai jos și doriți să răsfoiți și să selectați celula care conține numele. Pedro🇧🇷

De acolo, urmați acești pași:

1. Accesați ghidul dezvoltator 🇧🇷 Visual Basic🇧🇷 (Dacă nu aveți fila Dezvoltator activată în Excel, verifica aici pas cu pas).

ghid pentru dezvoltatori

dos. Pe ecranul VBA, selectați foaia de lucru dorită din meniul din stânga. În acest exemplu, vom selecta Fișa de lucru 1 care este foaia de lucru care conține lista de nume.

3. După ce ați selectat foaia de lucru dorită, în zona din dreapta, introduceți codul de mai jos:

Selectați celula cu prima apariție a valorii căutate

Sub LocateName()
Interval("A1:A10").Find(What:="Peter").Selectați
End Sub
  • Observați în codul de mai sus că am menționat intervalul pe care îl căutăm (A1: A10🇧🇷
  • După ce ați menționat intervalul, plasați un punct (.) și tastați GĂSI🇧🇷
  • Primul nostru argument este ceea ce căutăm. Pentru a evidenția argumentul, putem trece argumentul ce:=acest lucru va fi util pentru a identifica la ce parametru ne referim.
  • Partea finală este după ce găsim cuvântul ce vrem să facem. Trebuie să selectăm cuvântul, deci transmiteți argumentul ca .Selectați🇧🇷
  • Apoi rulați acest cod folosind cheia F5 sau manual, așa cum se arată în imaginea de mai jos, pentru a selecta prima celulă care conține numele Pedro🇧🇷

localizați în VBA

Exemplul 2: Selectați celula cu a doua apariție a valorii de căutare

În acest al doilea exemplu, rețineți că următoarea imagine conține câteva nume în intervalul A1:A10. Rețineți că numele "Pedro” apare de două ori în coloana A.

Selectați celula cu a doua apariție

În acest caz, dorim să căutăm și să selectăm a doua apariție a numelui „Petru” în coloana A (adică celula A7). Pentru a face acest lucru vom folosi următorul cod:

GĂSIȚI a doua apariție a VBA

Sub LocateName()
Interval("A1:A10").Find(What:="Peter", After:=Range("A2")).Selectați
End Sub

Observați în codul de mai sus că căutarea începe după celula A2 și continuă până la ultima celulă din coloana A. Acest lucru se datorează faptului că intervalul de căutare a fost specificat ca coloana A (A1:A10).

Deci, deoarece căutarea începe în celula A3, valoarea „Pedro” este în celulă A7 dă"Foaie de calcul 2🇧🇷 Prin urmare, celula A7 va fi selectată de funcția FIND la executarea codului.

Dacă numele «Pedro” nu a fost găsit în celula A3 până la ultima celulă din coloana A, căutarea ar începe din nou la celula A1 și se va termina la celula A2 de data aceasta. Prin urmare, celula specificată în argumentul „atunci” este căutat chiar la sfârșitul procesului de căutare.

Exemplul 3: Găsiți text specificând unele dintre caracterele acestuia

Pentru a căuta text specificând doar o parte a acestuia, introduceți argumentul Uite ca xlPart sau omite acest argument. În mod implicit, funcția FIND potrivește caracterele din valoarea de căutare cu întregul șir. Apoi returnează celula care conține întregul șir.

Uită-te la exemplul de mai jos:

Sub LocateName()
Interval("A1:A10").Find(What:="Ped", LookAt:=xlPart).Selectați
End Sub

Acest cod caută caracterele "Ped” în intervalul A1:A25 din „Sheet3”. Este returnată celula care conține valoarea, care este numită corespondență parțială🇧🇷 Deci, indiferent dacă caracterele valorii de căutare sunt plasate la începutul, mijlocul sau sfârșitul șirului, Excel VBA returnează o potrivire.

observație: constanta xlPart poate fi omis din cod deoarece este valoarea implicită a funcției FIND. Dar dacă acest argument este specificat, asigurați-vă că nu este cuprins între ghilimele duble.

Exemplul 4: Găsirea textului într-un comentariu

De asemenea, puteți utiliza funcția VBA FIND pentru a găsi text într-un comentariu de celulă în Excel.

Pentru o mai bună înțelegere, aruncați o privire la exemplul de mai jos unde avem o foaie de lucru care conține trei celule cu comentarii (indicate de triunghiuri roșii). Din aceasta vrem să găsim textul „comision platit” situat într-unul dintre comentarii. În acest caz, vom folosi următorul cod:

Sub LocateComment()
Interval("A1:B10").Find(What:="Commission Pay", LookIn:=xlComments).Selectați
End Sub

Găsiți text în comentariu

Ca urmare, Excel va selecta doar celula care conține comentariul al cărui text a fost specificat în codul nostru.

Exemplul 5: Gestionarea erorilor în funcția FIND în VBA

În cazul în care textul pe care îl căutăm nu se află în intervalul dat, VBA va returna o eroare așa cum se arată mai jos:

Eroare 91

Pentru a evita această eroare, putem folosi un cod așa cum se arată mai jos:

Sub LocateName()
Dim rezultat ca variantă

La data de eroare CV următoare
Interval("A1:A10").Find(What:="Cristina").Select
La eroare GoTo 0

Rezultat = ActiveCell.Value

Dacă Rezultatul = "" Atunci
MsgBox „Valoarea pe care o căutați nu este disponibilă în intervalul furnizat!”
Ieșiți din Sub
Final, dacă

End Sub

Observați în codul de mai sus că, dacă VBA găsește valoarea, va afișa valoarea găsită sau, altfel, va afișa mesajul ca "Valoarea pe care o căutați nu este disponibilă în intervalul dat🇧🇷

Pentru mai multe sfaturi despre cum să remediați erorile VBA, consultați articolul: Erori Excel VBA: tot ce trebuie să știți!

Detalii de reținut

  • Funcția FIND face parte din proprietatea RANGE și ar trebui să utilizați FIND după ce selectați numai intervalul.
  • În funcția FIND, primul argument (ce), plus orice altceva este opțional.
  • Dacă găsiți valoarea după o anumită celulă, puteți menționa celula în parametru atunci a sintaxei de căutare.

Descărcați foaia de calcul aici conţinând exemplele prezentate în acest tutorial.

Consultați, de asemenea, următoarele sfaturi Excel:

Deci, ce părere aveți despre funcția FIND din VBA? Dacă aveți întrebări, lăsați comentariul dvs. mai jos. Consultați, de asemenea, mai multe sfaturi Excel și VBA pe site-ul nostru!

Tommy Banks
Vom fi bucuroși să auzim ce părere aveți

Lasa un raspuns

TechnoBreak | Oferte și recenzii
logo
Activați înregistrarea în setări - general
Coșul meu