Tecnología

Inicio

Cómo encontrar un carácter en una cadena en VBA

Cómo encontrar un carácter en una cadena en VBA


Encontrar un único carácter en una cadena usando VBA es un caso especial de la búsqueda de una cadena dentro de otra. El proceso en sí utiliza una sola palabra de Visual Basic, InStr, que busca en el texto para una cadena específica, o un carácter único en este ejemplo. Se necesita el resto del código para permitir la entrada del usuario y mostrar los resultados. El proceso utiliza un método de búsqueda entre mayúsculas y minúsculas; es decir, se encontrará letras mayúsculas o minúsculas.

Instrucciones

1 Abra uno de los programas de Microsoft Office que utilizan VBA (Visual Basic for Applications) y ya contienen algún texto. Haga clic en "desarrollador" en el menú superior y luego "Visual Basic", que se enumeran en la segunda fila de opciones. Esto abre la pantalla de edición de VBA.

2 Introduzca las siguientes líneas en la ventana en blanco.

Sub FindCharacter ()
Dim KnownString, SoughtCharacter, Encontrado As String
Dim Ubicación, i, ajuste As Integer
KnownString = InputBox ( "Escriba o copiar y pegar el texto a buscar aquí")
SoughtCharacter = InputBox ( "Escriba el carácter buscado aquí")
Localización = InStr (1, KnownString, SoughtCharacter, vbTextCompare)
Ajuste = 10
Para i = 1 Para Len (KnownString)
Si Ubicación <Ajuste Entonces
Ajuste = Ajuste / 5
Terminara si
Si i = Lugar Entonces
Encontrado = Mid (KnownString, Ubicación - Ajuste, la ubicación + Ajuste)
MsgBox "Esta es la primera aparición de" & vbCrLf y SoughtCharacter & "en el contexto" & vbCrLf & " '" & Found & "'"
Terminara si
Siguiente yo
End Sub

3 Reducir el lado derecho de la línea siguiente si la búsqueda de un carácter en segmentos muy cortos de texto:

Ajuste = 10

Para ello, porque el proyecto está configurado para mostrar un número predeterminado de caracteres a cada lado del personaje codiciado. Si la cadena es demasiado corto, el programa va a producir un error.

4 Haga clic en "Macros" en la sección desarrollador del documento de Word y ejecutar esta macro para ver cómo funciona. Si la macro falla, vuelva a comprobar su trabajo desde las indicaciones anteriores.

Consejos y advertencias

  • Mejorar el programa, ofreciendo al usuario una opción para continuar la búsqueda mediante un MsgBox para impulsar con una frase como "continuar la búsqueda?" Y botones de respuesta por defecto "Sí / No". Añadir una rutina en el código para aumentar el número de ubicación para mover desde el primero, y repetir la misma búsqueda.
  • Este código funciona igual de bien para buscar palabras en lugar de un solo carácter.
  • Puede que tenga que jugar con el número de letras del texto circundante para que se adapte a sus necesidades.
  • Cuanto más corta sea la cadena buscada, tanto más probable es que el "en el contexto" pantalla será demasiado abreviado. Por otra parte, no desea demasiado texto para mostrar que rodea, por lo que es una cuestión de criterio.