VBA InStr | Top 5 exemples per utilitzar la funció Excel VBA InStr

Funció Excel VBA InStr

Instruments a VBA s’utilitza per esbrinar la posició d’una subcadena donada en una cadena després d’especificar el mètode de comparació amb la funció; hi ha quatre mètodes de comparació diferents per a aquesta funció; sortida aquesta funció es troba en una variable sencera.

La cadena a VBA no és res més que una sèrie de caràcters, és a dir, tots els textos que es subministren amb cometes dobles es tracten com a cadenes. La funció InStr és una funció de text integrada que s’utilitza per manipular les cadenes. Per exemple: si voleu extreure una subcadena d'una frase o si voleu aplicar canvis de disseny de tipus de lletra a una cadena concreta d'una sèrie de caràcters o si voleu trobar la posició d'un caràcter i moltes altres possibilitats, podeu utilitzar InStr.

Sintaxi

Té 4 arguments com es mostra a la imatge següent.

  • [Començar]: Això no és obligatori. Aquest és el valor numèric que hem d’especificar des de quina posició de la funció de corda Instr comença a buscar el text subministrat. Per exemple: si voleu cercar el personatge "A" a la paraula "Bangalore" des de la 3a posició hem de dir a la posició inicial de la funció Instr com a 3. Per tant, des del caràcter de 3a posició "A" es troba en la 5a posició. Si ignoreu aquest paràmetre, el valor per defecte és 1.
  • Cadena 1: Aquesta és la cadena real que subministrem, és a dir, a partir d’aquest text intentem trobar la subcadena. Per exemple, si cerqueu la cadena "A" dins "Bangalore", Cadena 1 a Bangalore.
  • Cadena 2: Això no és res més que quina és la cadena que cerquem. Per exemple, si cerqueu la cadena "A" dins "Bangalore", La cadena 2 és a.
  • [Compareu]: Aquest és de nou un argument opcional. Hi ha tres tipus d'opcions disponibles a l'argument [comparar].

  • vbBinaryCompare: Això no és altra cosa que una cerca sensible a majúscules i minúscules de la cadena secundària (cadena 2) a la cadena 1. Per exemple, si cerquem "A" a la paraula "Bangalore" Instr tornaria 2 com a resultat i si esteu cercant "A" dins de la paraula "Bangalore" Els instruments retornarien 0 com a resultat perquè la cadena proporcionada és un valor en majúscules.

També podem posar zero (0) com a argument.

vbTextCompare: Aquesta no és una cerca sensible a majúscules de la cadena 2 de la cadena 1. Per exemple, si estem buscant "A" a la paraula "Bangalore" Instr tornaria 2 com a resultat i si esteu cercant "A" a la paraula "Bangalore" Instr també en tornaria 2. La lògica és A = a, B = b, C = c, etc.

També podem posar un (1) com a argument.

vbDatabaseCompare: S’utilitza per comparar la informació de la vostra base de dades, és a dir, la base de dades de Microsoft Access.

També podem posar un (-1) com a argument.

Top 5 exemples d'ús de la funció VBA Instr

Podeu descarregar aquesta plantilla Excel de la funció VBA Instr aquí: plantilla Excel de la funció VBA Instr

Exemple 1

Comencem amb el primer exemple. A la paraula Bangalore trobar la posició del personatge a.

A continuació, el codi realitzarà la tasca per a nosaltres.

Codi:

 Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub 

Ara executeu el codi VBA indicat anteriorment amb la tecla F5 o també podeu executar aquest codi manualment, tal com es mostra a la captura de pantalla que es mostra a continuació.

Sortida:

Exemple 2

Ara a la paraula Bangalore trobar la posició del personatge "A" des de la tercera posició.

El codi següent realitzarà la tasca per a nosaltres.

Codi:

 Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Per executar el codi indicat anteriorment, podeu utilitzar la tecla F5 o també podeu executar-lo manualment, tal com es mostra a la captura de pantalla que es mostra a continuació.

Sortida:

Ara, a la imatge anterior, mireu la diferència respecte al codi anterior. Com que hem esmentat la posició inicial del personatge com a 3, va ignorar el primer personatge "A" a la 2a posició.

Exemple 3

Ara veurem una cerca sensible a majúscules i minúscules. A la paraula Bangalore troba la carta "A".

Per a això, hem de proporcionar l'argument de comparació com vbBinaryCompare.

Codi:

 Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub 

Ara executeu aquest codi amb la tecla F5 o també podeu executar-lo manualment.

Sortida:

Ja que hem proporcionat l'argument de comparació com vbBinaryCompare La funció Instr va retornar el resultat com a zero perquè no hi ha lletres majúscules "A" existeix.

Exemple # 4

Ara veurem una cerca més sensible a majúscules i minúscules. A la paraula Bangalore troba la carta "A". L'exemple anterior va retornar el resultat com a zero.

Per superar l'enfocament sensible a majúscules aquí, hem de proporcionar l'argument de comparació com vbTextCompare.

Codi:

 Sub Instr_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Ara executeu aquest codi amb la tecla F5 o també podeu executar-lo manualment.

Sortida:

Exemple núm. 5

Ara veurem el nivell avançat de la funció Instr. Si teniu molts fulls que tenen un nom més o menys similar i voleu amagar tots aquests fulls alhora, podem utilitzar el codi següent per amagar un full específic.

Per exemple, tinc 5 fulls anomenats Resum 1, Resum 2, Resum 3, Resum 4 i Full de dades.

Ara vull amagar tots aquells fulls que contenen la paraula "Resum". Utilitzeu el codi següent per amagar tots els fulls que porten la paraula Resum al seu nom.

Codi:

 Sub To_Hide_Specific_Sheet () Dim Ws Com full de treball per a cada Ws a ActiveWorkbook.Whesheets if InStr (Ws.Name, "Resum")> 0 Aleshores Ws.Visible = xlSheetVeryHidden End Si la funció InStr de Ws següent cerca una paraula o una frase al nom del full 'Si ho troba, s'amagarà End Sub 

Ara executeu aquest codi amb la tecla F5 o també podeu executar-lo manualment i veure la sortida.

De la mateixa manera, per mostrar tots aquests fulls, utilitzeu el codi següent.

Codi:

 Sub To_Un hide_Specific_Sheet () Dim Ws Com full de treball per a cada Ws a ActiveWorkbook.Whesheets if InStr (Ws.Name, "Summary")> 0 Aleshores Ws.Visible = xlSheetVisible End Si la funció InStr de Ws següent cerca paraula o frase al nom del full 'Si ho troba, s'amagarà End Sub 

Ara executeu aquest codi amb la tecla F5 o també podeu executar-lo manualment i veure la sortida.

Coses que cal recordar

  • Instr és una funció que distingeix entre majúscules i minúscules. Per tal d'eliminar aquest problema sensible a majúscules, heu de proporcionar l'argument [compare] com a.
  • Si cerqueu caràcters sensibles a majúscules i minúscules, heu de proporcionar l'argument [comparar], ja que, per defecte, VBA pren aquest argument com a argument encara que no el proporcioneu.
  • Instr és una funció VBA de manera que no podeu utilitzar-la en un full de treball Excel com altres fórmules integrades.
  • Si la funció no troba la cadena 2, el resultat serà zero.