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 鈥淧eter鈥 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 鈥淔ull3鈥. 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