Cum se utilizează funcția Find în VBA (6 exemple)

  • Imparte Asta
Hugh West

Una dintre cele mai importante și utilizate funcții pe scară largă pe care o folosim în Aplicație Visual Basic (VBA) este funcția Find. În acest articol, vă voi arăta cum puteți folosi funcția Funcția FIND de Excel cu exemple și ilustrații adecvate.

Descărcați caietul de practică

Funcția Find în VBA în Excel.xlsm

6 exemple rapide de utilizare a funcției FIND în VBA

Aici avem un set de date cu Nume de cărți, autori și Prețuri a unor cărți de la o librărie numită Martin Bookstore.

Astăzi obiectivul nostru este de a vedea diverse tipuri de utilizări ale Găsiți funcția de VBA din acest set de date.

1. Folosiți funcția Find în VBA fără parametru

Puteți utiliza funcția Găsiți funcția de VBA fără parametri.

Apoi, va căuta o anumită valoare într-un interval de celule și va returna prima potrivire găsită.

Să căutăm numele "P. B. Shelly" în coloana Autor ( C4:C13 ).

Linia cu Găsiți funcția va fi:

Set cell = Range("C4:C17").Find("P. B. Shelly")

Complet Cod VBA va fi:

Cod VBA:

 Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Ieșire:

Acesta produce un Macro numit Găsiți Dacă executați macroul, acesta va returna $C$6 , prima adresă de celulă cu numele P. B. Shelly .

Citește mai mult: Căutarea într-un interval cu VBA în Excel: Includerea corespondențelor exacte și parțiale

2. Aplicați funcția Find în VBA cu parametrul After (pentru a începe căutarea dintr-o anumită celulă)

Puteți utiliza funcția După cu parametrul Găsiți funcția în VBA Apoi va începe să caute o valoare de sub o celulă din cadrul unui interval.

De exemplu, să începem să căutăm numele "P. B. Shelly" de sub celulă C6 .

Linia de cod va fi:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

Și complet Cod VBA va fi:

Cod VBA:

 Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub 

Ieșire:

Acesta va returna $C$13 pentru că începe căutarea de sub celula C6 , care este din celulă C7 . deci devine P. B. Shelly în celulă C13 prima.

Citește mai mult: Cum să găsiți șirul într-o celulă utilizând VBA în Excel

3. Executați funcția Find în VBA cu înfășurarea în jurul parametrului After (pentru a căuta o valoare în mod circular)

The După cu parametrul Găsiți funcția caută o valoare în mod circular

Adică, începe căutarea de sub o celulă dintr-un interval, termină căutarea în interval și apoi începe din nou din partea de sus a intervalului.

De exemplu, să începem să căutăm numele "John Keats" de sub celulă C8 folosind După parametru.

Linia de cod va fi:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

Și complet Cod VBA va fi:

Cod VBA:

 Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub 

Ieșire:

Acesta va returna $C$7 pentru că începe căutarea de sub celula C8 , care este din celulă C9 .

Nu găsește nimic până la celula C13 , deci pornește din nou de la celula C4 și găsește unul în celula C7 .

Lecturi similare:

  • Cum să găsiți un șir de caractere cu VBA în Excel (8 exemple)
  • Găsiți corespondența exactă utilizând VBA în Excel (5 moduri)
  • Cum să găsiți și să înlocuiți folosind VBA (11 moduri)

4. Utilizați funcția Find în VBA cu parametrul LookAt (pentru potrivire exactă sau parțială)

Puteți utiliza funcția Găsiți funcția în VBA cu Uitați-vă la parametru.

Utilizați LookAt = xlWhole pentru un Exact se potrivesc, și LookAt=xlPart pentru un Parțial meci.

De exemplu, să încercăm să aflăm dacă există vreo carte cu numele "Ode" în Numele cărții coloană ( B4:B13 ).

Dacă folosim xlWhole în linia de cod:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

Ieșirea va afișa o eroare, deoarece nu va găsi niciun exact meci.

Dar dacă folosiți:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Apoi se va întoarce $B$9 pentru că există o carte cu acest nume. "Ode" în ea în celulă B7 , Odă privighetorii.

Deci, codul complet pentru parțial meci este:

Cod VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub 

5. Operarea funcției Find în VBA cu parametrul SearchDirection (pentru a specifica direcția de căutare)

De asemenea, puteți utiliza și funcția Găsiți funcția în VBA cu SearchDirection parametru.

Utilizați SearchDirection = xlNext pentru căutarea din De sus în jos .

Și SearchDirection = xlPrevious pentru căutarea din De jos în sus .

De exemplu, să încercăm să găsim Autorul Elif Shafak în coloana Autor ( C4:C13 ).

Dacă folosim xlNext în linia de cod:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Apoi se va întoarce $C$5 .

Dar dacă folosiți:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Apoi se va întoarce $C$11 .

Deci, codul complet pentru căutarea din de jos în sus este:

Cod VBA:

 Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub 

6. Funcția Find în VBA cu parametrul MatchCase (pentru potrivire cu majuscule și minuscule sau insensibilă)

În cele din urmă, puteți utiliza funcția Găsiți funcția cu MatchCase parametru.

Utilizați MatchCase = True pentru un Sensibil la majuscule și minuscule meci , și MatchCase=False pentru un nu ține cont de majuscule și minuscule meci.

De exemplu, să încercăm să găsim cartea "mama" în Numele cărții coloană ( B4:B13 ).

Dacă folosim True în linia de cod:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

Rezultatul va afișa o eroare, deoarece nu va găsi nicio potrivire.

Dar dacă folosiți:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

Apoi se va întoarce $B$9 pentru că există o carte numită "Mama" în celulă B8 .

Deci, codul complet pentru nu ține cont de majuscule și minuscule meci este:

Cod VBA:

 Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub 

Concluzie

Folosind aceste metode, puteți utiliza funcția Find în aplicația Visual Basic. Aveți întrebări? Nu ezitați să ne întrebați.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.