Como usar a función Find en VBA (6 exemplos)

  • Comparte Isto
Hugh West

Unha das funcións máis importantes e amplamente utilizadas que usamos en Aplicación Visual Basic (VBA) é a función Buscar. Neste artigo mostrarei como podes usar a función BUSCAR de Excel con exemplos e ilustracións axeitados.

Descargar o libro de prácticas

Buscar función en VBA en Excel.xlsm

6 exemplos rápidos para usar a función FIND en VBA

Aquí temos obtivo un conxunto de datos cos Nomes dos libros, autores e Prezos dalgúns libros dunha librería chamada Martin Bookstore.

Hoxe. o noso obxectivo é ver varios tipos de usos da función Buscar de VBA a partir deste conxunto de datos.

1. Use a función Buscar en VBA sen parámetros

Podes usar a función Buscar de VBA sen parámetros.

Entón, buscará un valor específico dentro dun intervalo de celas e devolverá a primeira coincidencia que atope.

Busquemos o nome “P. B. Shelly” na columna Autor ( C4:C13 ).

A liña coa función Buscar será:

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

O código VBA completo será:

Código VBA:

6319

Saída:

Produce un Macro chamada Buscar . Se executas a Macro, devolverá $C$6 , o enderezo da primeira cela co nome P. B. Shelly .

Ler máis: Atopa dentro dun intervalo con VBA enExcel: incluíndo coincidencias exactas e parciais

2. Aplique a función Buscar en VBA co parámetro After (para comezar a buscar desde unha cela específica)

Podes usar o parámetro After coa función Buscar en VBA . Despois comezará a buscar un valor debaixo dunha cela dentro dun intervalo.

Por exemplo, imos comezar a buscar o nome “P. B. Shelly” desde abaixo da cela C6 .

A liña de código será:

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

E o código VBA completo será:

Código VBA:

2969

Saída:

Devolverá $C$13 porque comeza a buscar desde abaixo da cela C6 , é da cela C7 . Entón queda P. B. Shelly na cela C13 primeiro.

Ler máis: Como atopar cadeas nun Cela usando VBA en Excel

3. Executa a función Buscar en VBA con envolver o parámetro After (para buscar un valor de forma circular)

O parámetro After coa función Buscar busca un valor de forma circular

É dicir, comeza a buscar desde abaixo dunha cela dentro dun intervalo, remata a busca no intervalo e, a continuación, comeza de novo dende a parte superior do intervalo.

Por exemplo, imos comezar a buscar o nome “John Keats” desde abaixo da cela C8 usando o parámetro After .

A liña de o código será:

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

E oO código VBA completo será:

Código VBA:

4699

Saída:

Devolverá $C$7 porque comeza a buscar desde abaixo da cela C8 , que é de cela C9 .

Non atopa nada ata a cela C13 , polo que volve comezar a partir da cela C4 e atopa un na cela C7 .

Lecturas similares:

  • Como atopar cadeas con VBA en Excel (8 exemplos)
  • Atopa coincidencia exacta usando VBA en Excel (5 xeitos)
  • Como atopar e substituír usando VBA (11 Camiños)

4. Use a función Buscar en VBA co parámetro LookAt (para coincidencia exacta ou parcial)

Pode usar a función Buscar en VBA co <1 Parámetro>LookAt .

Use LookAt = xlWhole para unha coincidencia exacta e LookAt=xlPart para un Parcial coinciden.

Por exemplo, intentemos descubrir se hai algún libro co nome “Oda” na columna Nome do libro ( B4:B13 ).

Se usamos xlWhole na liña de código:

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

A saída mostrará un erro porque non atopará ningunha coincidencia exacta .

Pero se usas:

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

Entón devolverá $B$9 , porque hai un libro co nome “Oda” na cela B7 , Oda ao ruiseñor.

Así que o código completo para a coincidencia parcial é:

Código VBA:

2220

5. Utilice a función Buscar en VBA co parámetro SearchDirection (para especificar a dirección da busca)

Tamén pode usar a función Buscar en VBA co Parámetro SearchDirection .

Utilice SearchDirection = xlNext para buscar de Arriba a Abaixo .

E SearchDirection = xlAnterior para buscar de Abaixo a Arriba .

Por exemplo, intentemos buscar o Autor Elif Shafak na columna Autor ( C4:C13 ).

Se usamos xlNext na liña de código:

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

Entón devolverá $C$5 .

Pero se usas:

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

Entón devolverá $C$11 .

Así que o código completo para buscar de de abaixo a arriba é:

Código VBA:

2569

6. Buscar función en VBA co parámetro MatchCase (para coincidencias que distinguen entre maiúsculas e minúsculas ou non)

Finalmente, podes usar a función Buscar co parámetro MatchCase .

Utiliza MatchCase = True para unha correspondencia que distingue entre maiúsculas e minúsculas , e MatchCase=False para coincidencia insensible entre maiúsculas e minúsculas.

Por exemplo, intentemos buscar o libro “nai” na columna Nome do libro ( B4:B13 ).

Se usamos True na liña de código:

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

A saída mostrará un erro porque non non atopar ningunhacoinciden.

Pero se usas:

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

Entón devolverá $ B$9 porque hai un libro chamado “Nai” na cela B8 .

Así que o código completo para a coincidencia insensible entre maiúsculas e minúsculas é:

Código VBA:

4744

Conclusión

Utilizando estes métodos, pode usar a función Buscar na aplicación de Visual Basic. Tes algunha dúbida? Non dubides en preguntarnos.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.