Táboa de contidos
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.