Come trovare un carattere in una stringa in VBA

January 10

Come trovare un carattere in una stringa in VBA


Trovare un singolo carattere in una stringa utilizzando VBA è un caso speciale di trovare una stringa all'interno di un'altra. Il processo si usa una sola parola di Visual Basic, InStr, che cerca di testo per una stringa specifica, o un carattere unico in questo esempio. Occorre Il resto del codice per consentire l'input dall'utente e visualizzare i risultati. Il processo utilizza un metodo di ricerca case-insensitive; che è, troverà le lettere minuscole o maiuscole.

istruzione

1 Aprire uno dei programmi di Microsoft Office che utilizzano VBA (Visual Basic for Applications) e contengono già una parte di testo. Clicca su "Sviluppatore" nel menu in alto e poi "Visual Basic", che saranno elencati nella seconda fila di opzioni. Questo apre la schermata VBA Editing.

2 Inserire le seguenti righe nella finestra vuota.

Sub FindCharacter ()
Dim KnownString, SoughtCharacter, Trovato As String
Dim posizione, io, regolare come numero intero
KnownString = InputBox ( "Tipo o copiare e incollare il testo da cercare qui")
SoughtCharacter = InputBox ( "digitare il carattere cercato qui")
Location = InStr (1, KnownString, SoughtCharacter, vbTextCompare)
Regolare = 10
Per i = 1 Per Len (KnownString)
Se Località <Regolare Poi
Regolare = Regola / 5
Finisci se
Se i = posizione, allora
Trovato = Mid (KnownString, Location - Regolare, Location + Regola)
MsgBox "Questa è la prima occorrenza di" & vbCrLf & SoughtCharacter & "nel contesto" & vbCrLf & " '" & Found & "'"
Finisci se
Next i
End Sub

3 Ridurre il lato destro della riga seguente se cercasse un personaggio molto brevi segmenti di testo:

Regolare = 10

Fare questo perché il progetto è impostato per visualizzare un numero predefinito di caratteri su entrambi i lati del carattere ricercato. Se la stringa è troppo breve, il programma genera un errore.

4 Clicca su "Macro" nella sezione Developer del documento di Word ed eseguire questa macro per vedere come funziona. Se la macro non riesce, ricontrollare il vostro lavoro da le indicazioni sopra riportate.

Consigli e avvertenze

  • Migliorare il programma, offrendo all'utente la possibilità di continuare la ricerca utilizzando un MsgBox per richiedere con una frase del tipo: "continuare a cercare?" E pulsanti di risposta di default "Sì / No". Aggiungere una routine nel codice di aumentare il numero di posizione per spostare sul dalla prima, e ripetere la stessa ricerca.
  • Questo codice funziona ugualmente bene per parole cercare anziché un singolo carattere.
  • Potrebbe essere necessario armeggiare con il numero di lettere di testo circostante in base alle proprie esigenze.
  • Più breve la stringa cercata, più è probabile che il "nel contesto" display sarà troppo abbreviati. D'altra parte, non si vuole troppo testo per mostrare circostante, quindi è una chiamata in giudizio.