Funció FIND a VBA: Com fer-la servir?

Vol aprendre a fer servir Funció TROBAR a VBA🇧🇷 Llavors ets al lloc correcte!

Qui no coneix l'opció CERCAR a Excel? Si heu estat treballant amb Excel durant algun temps, és probable que hagi utilitzat la funció BUSCAR o la popular tecla de mètode abreujat Ctrl + L per ubicar una paraula o contingut que voleu cercar en tot el full de treball. com tot el llibre de treball.

Així mateix, a VBA tenim una funció anomenada FIND que ens pot ajudar a trobar el valor que busquem.

Seguiu els detalls a continuació per obtenir més informació sobre aquesta funció mitjançant exemples pràctics.

Com funciona la funció FIND a VBA?

La funció FIND d'Excel VBA cerca un valor específic dins d'un rang específic. Cerca la primera aparició d'aquest valor i, si el trobeu, la funció retorna la cel·la que el conté. No obstant això, si no hi ha cap coincidència, la funció no retorna res. La funció VBA FIND pot tornar una coincidència exacta o parcial.

Per exemple, el codi següent cerca el text «Sant Pau» a l'interval A1: A10 a "Full de treball1🇧🇷

With Sheets("Planilha1").Range("A1:A10")
Set Rng = .Find(What:="Són Paulo")

El propòsit de fer servir la funció FIND a VBA és trobar el valor desitjat en un conjunt de dades donat. Amb un codi VBA, podeu automatitzar la tasca de trobar valors en Excel.

Sintaxi de la funció VBA FIND

La sintaxi de la funció VBA FIND es declara de la manera següent:

expressió.Find(Què, Després, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

on:

expressió: és l'objecte de rang, que precedeix la funció FIND al codi VBA. El rang de cerca pot ser una o més files, columnes o el full de càlcul complet. La funció VBA FIND accepta els arguments següents:

  • Què: Aquest és el valor a cercar. Pot ser numèric, textual o qualsevol altre tipus de dades dExcel. Aquest argument és el mateix que l'opció Cerca de la finestra «trobar i reemplaçar” d'Excel.
  • després: Indica la cel·la des de la qual s'iniciarà la cerca. S'introdueix com una sola referència de cel·la. Si s'omet aquest argument, la cerca comença després de la cel·la a la part superior esquerra del rang de cerca especificat.
  • Passi a veure: Aquesta és la ubicació (o les dades) on cal cercar el valor. Pot ser un comentari (xlComments), una fórmula (xlFormules) o un valor (xlValues). El valor per defecte per a aquest argument és xlFormules. A més, aquest argument és el mateix que l'opció Cerca de la finestra «trobar i reemplaçar” d'Excel.
  • mirar: Aquest argument decideix fer coincidir tot el contingut de la cel·la (coincidència exacta) o una part del contingut de la cel·la (coincidència parcial). Les constants són xlWhole i xlPart per a coincidències exactes i parcials, respectivament. El valor per defecte per a aquest argument és xlPart.
  • Ordre de cerca: Aquest argument suggereix l'ordre de cerca. Podeu especificar si la cerca serà en files (xlByRows) o columnes (xlByColumns). El valor per defecte per a aquest argument és xlByRows. A més, aquest argument és el mateix que l'opció Cerca de la finestra «trobar i reemplaçar” d'Excel.
  • Adreça de cerca: Indica l'adreça on es farà la cerca. Podeu cercar cap avall o cap a la següent cel·la amb la constant xlNext. Alternativament, podeu buscar cap enrere (cap amunt) oa la cel·la anterior amb la constant xlPrevious. El valor per defecte per a aquest argument és xlNext.
  • Cas de coincidència: Aquest argument decideix si la cerca ha de distingir entre majúscules i minúscules o no. Si la cerca distingeix entre majúscules i minúscules, aquest argument s'especifica com a veritable (VERITABLE), en cas contrari, és fals (FALS). El valor per defecte per a aquest argument és Fals.
  • MatchByte: Aquest argument s'ha de fer servir si algú ha instal·lat o seleccionat la compatibilitat amb idiomes de doble byte. S'ha d'especificar com a veritable si els caràcters de doble byte han de coincidir amb caràcters de doble byte. S'ha d'especificar com a fals si els caràcters de doble byte han de coincidir amb els equivalents d'un sol byte.
  • Format de cerca: Indica si el valor a cercar ha d'estar en un format específic (com ara negreta o cursiva) o no. Si el valor de cerca ha de seguir una tècnica de format, aquest argument s'especifica com a veritable, en cas contrari, fals. El valor per defecte d'aquest argument és fals (FALSO).

només l'argument què és necessari. Els altres arguments són opcionals.

La funció TROBAR retorna un dels resultats següents:

  • Si hi ha una coincidència, la funció retorna la primera cel·la on es troba el valor.
  • Si no hi ha cap coincidència, la funció no retorna res. Això és perquè l'objecte de la funció s'estableix en res.

Alternativament, si no es troba una coincidència, un missatge personalitzat especificat a través del Funció de quadre de missatge es pot tornar (consulteu els exemples de codi a continuació).

Nota 1: La cerca comença després de la cel·la especificada a l'argument. Després i continua fins a la darrera cel·la del rang de cerca. Si el valor no es troba fins a aquesta darrera cel·la, la cerca comença de nou des de la primera cel·la del rang de cerca fins a la cel·la especificada a l'argument. Després🇧🇷

Per tant, la cel·la especificada a l'argument Després es cerca al final del procés de cerca. Per a més detalls sobre l'ús de l'argument Desprésvegeu el segon exemple en aquest article.

Nota 2: Cada vegada que s'utilitza la funció FIND de VBA, el passi a veure🇧🇷 mirar🇧🇷 Ordre de cerca y MatchByte es desen Per tant, si s'ometen aquests valors la propera vegada que s'utilitzi la funció, l'Excel utilitzarà els valors desats anteriorment. Per tant, es recomana declarar explícitament els arguments proporcionats sempre que la cerca es faci mitjançant la funció FIND de VBA.

Com utilitzar la funció TROBAR a Excel VBA?

Perquè pugui comprendre l'ús de la funció FIND a VBA, hem separat alguns exemples pràctics a continuació.

Exemple 1: Selecció de la cel·la amb la primera aparició del valor cercat

En aquest primer exemple, suposeu que teniu una llista que conté alguns noms com es mostra a la imatge a continuació i voleu cercar i seleccionar la cel·la que conté el nom. pedro🇧🇷

A partir d'aquí segueix aquests passos:

1. Accedeix a la guia desenvolupador 🇧🇷 bàsic visual🇧🇷 (Si no teniu habilitada la pestanya Desenvolupador al vostre Excel, Revisa aquí pas a pas).

guia per a desenvolupadors

XNUMX. A la pantalla de VBA, seleccioneu el full de treball desitjat del menú de l'esquerra. En aquest exemple, seleccionarem el Full de treball1 que és el full de treball que conté la llista de noms.

3. Després de seleccionar el full de treball desitjat, a l'àrea a la dreta, introduïu el codi a continuació:

Seleccioneu la cel·la amb la primera aparició del valor cercat

Sub LocalitzarNome()
Range("A1:A10").Find(What:="Pere").Select
End Sub
  • Observeu al codi anterior que esmentem el rang que estem buscant (A1: A10🇧🇷
  • Després d'esmentar el rang, poseu un punt (.) i escriviu TROBAR🇧🇷
  • El nostre primer argument és el que estem buscant. Per ressaltar l'argument, podem passar l'argument que:=això serà útil per identificar a quin paràmetre ens referim.
  • La part final és després de trobar la paraula allò que volem fer. Necessitem seleccionar la paraula, així que passi l'argument com .Seleccioneu🇧🇷
  • Després executa aquest codi usant la tecla F5 o manualment com es mostra a la imatge a continuació per seleccionar la primera cel·la que conté el nom pedro🇧🇷

localitzar a VBA

Exemple 2: Seleccionar la cel·la amb la segona ocurrència del valor cercat

En aquest segon exemple, tingueu en compte que la imatge següent conté alguns noms al rang A1:A10. Tingueu en compte que el nom «pedro” apareix dues vegades a la columna A.

Seleccioneu la cel·la amb la segona ocurrència

En aquest cas, volem cercar i seleccionar el segona ocurrència del nom “Peter” a la columna A (és a dir, cel·la A7). Per això utilitzarem el codi següent:

TROBAR segona aparició de VBA

Sub LocalitzarNome()
Range("A1:A10").Find(What:="Pere", After:=Range("A2")).Select
End Sub

Observeu en el codi anterior que la cerca comença després de la cel·la A2 i continua fins a l'última cel·la de la columna A. Això és perquè el rang de cerca es va especificar com a columna A (A1:A10).

Així, com que la cerca comença a la cel·la A3, el valor “pedro” es troba a la cel·la A7 dóna «Full de càlcul2🇧🇷 Per tant, la cel·la A7 serà seleccionada per la funció FIND en executar el codi.

Si el nom «pedro” no s'havia trobat a la cel·la A3 fins a l'última cel·la de la columna A, la cerca començaria novament a la cel·la A1 i acabaria a la cel·la A2 aquesta vegada. Per tant, la cel·la especificada a l'argument “Després” es busca just al final del procés de cerca.

Exemple 3: trobar text especificant alguns dels seus caràcters

Per cercar text especificant-ne només una part, introduïu l'argument mirar com a xlPart u ometre aquest argument. Per defecte, la funció FIND fa coincidir els caràcters del valor de cerca amb la cadena completa. Després torna la cel·la que conté tota aquesta cadena.

Vegeu l'exemple a continuació:

Sub LocalitzarNome()
Range("A1:A10").Find(What:="Ped", LookAt:=xlPart).Select
End Sub

Aquest codi cerca els caràcters «ped” al rang A1:A25 de “Full3”. Es retorna la cel·la que conté el valor, que s'anomena correspondència parcial🇧🇷 Per tant, independentment de si els caràcters del valor de cerca es col · loquen al principi, al mig o al final de la cadena, Excel VBA torna una coincidència.

observació: el constant xlPart es pot ometre del codi perquè és el valor predeterminat de la funció FIND. Però si s'especifica aquest argument, assegureu-vos que no estigui entre cometes dobles.

Exemple 4: Trobar text dins d'un comentari

També podeu utilitzar la funció FIND de VBA per cercar text dins d'un comentari de cel·la en Excel.

Per a una millor comprensió, mireu l'exemple a continuació on tenim un full de treball que conté tres cel·les amb comentaris (indicats pels triangles vermells). A partir d'això volem trobar el text “Comissió pagada” ubicat dins d'un dels comentaris. En aquest cas, utilitzarem el codi següent:

Sub LocalitzarComentari()
Range("A1:B10").Find(What:="Comissão Paga", LookIn:=xlComments).Select
End Sub

Cercar text dins del comentari

Com a resultat, Excel només seleccionarà la cel·la que conté el comentari el text del qual es va especificar al nostre codi.

Exemple 5: Maneig d'errors a la funció FIND a VBA

En cas que el text que estem buscant no es trobi dins del rang donat, VBA tornarà un error com es mostra a continuació:

error 91

Per evitar aquest error, podem utilitzar un codi com es mostra a continuació:

Sub LocalitzarNome()
Dim Resultat As Variant

On Error Resume Next
Range("A1:A10").Find(What:="Cristina").Select
En cas d'error GoTo 0

Resultat = ActiveCell.Value

If Resultat = "" Then
MsgBox "O valor que você està procurant não està disponível no interval fornecido!"
Surt del sub
End If

End Sub

Observeu al codi anterior que si VBA troba el valor, mostrarà el valor trobat o, en cas contrari, mostrarà el missatge com «El valor que esteu cercant no està disponible en el rang donat🇧🇷

Per obtenir més suggeriments sobre com solucionar errors de VBA, consulteu l'article: Errors dExcel VBA: tot el que necessita saber!

Detalls per recordar

  • La funció TROBAR és part de la propietat RANGO i ha de fer servir TROBAR després de seleccionar només el rang.
  • A la funció FIND, es requereix el primer argument (què), a més tota la resta és opcional.
  • Si trobeu el valor després d'una cel·la específica, podeu esmentar la cel·la al paràmetre Després de la sintaxi de cerca.

Descarregueu el full de càlcul aquí que conté els exemples presentats en aquest tutorial.

Consulteu també els consells d'Excel següents:

Aleshores, què penses de la funció FIND a VBA? Si tens algun dubte, deixa el teu comentari a continuació. Consulteu també més consells d'Excel i VBA al nostre lloc web!

Tommy Banks
Estarem encantats d'escoltar el que penses

Deixi una resposta

TecnoBreak | Ofertes i Reviews
Logo
Habilita el registre a la configuració: general
Carret de la compra