Hvordan finne en karakter i en String i VBA

Hvordan finne en karakter i en String i VBA


Finne en enkelt tegn i en streng ved hjelp av VBA er en spesiell forekomst av å finne en streng inne i en annen. Selve prosessen bruker bare en Visual Basic ord, InStr, som søker tekst for en bestemt streng, eller enkelt tegn i dette eksemplet. Resten av koden som er nødvendig for å tillate input fra brukeren og vise resultatene. Prosessen bruker en case-insensitive søk metoden; som er, vil det finne små eller store bokstaver.

Bruksanvisning

1 Åpne et av Microsoft Office-programmer som bruker VBA (Visual Basic for Applications) og allerede inneholder tekst. Klikk på "Utvikler" i toppmenyen og deretter "Visual Basic", som vil bli oppført i den andre raden av alternativer. Dette åpner VBA redigering skjermen.

2 Skriv inn følgende linjer i tomt vindu.

Sub FindCharacter ()
Dim KnownString, SoughtCharacter, Funnet As String
Dim Location, jeg, Juster As Integer
KnownString = InputBox ( "Skriv inn eller kopiere og lime inn tekst for å søke her")
SoughtCharacter = InputBox ( "type karakter søkt her")
Location = InStr (1, KnownString, SoughtCharacter, vbTextCompare)
Juster = 10
For i = 1 Til Len (KnownString)
Hvis Sted <Juster deretter
Juster = Juster / 5
Slutt om
Hvis jeg = Sted Deretter
Funnet = Mid (KnownString, beliggenhet - Juster, Location + Juster)
MsgBox "Dette er den første forekomsten av" & vbCrLf & SoughtCharacter & "i sammenheng" og vbCrLf & " '" & Found & "'"
Slutt om
Neste jeg
End Sub

3 Redusere den høyre side av den følgende linje hvis søker etter en karakter i meget korte segmenter av tekst:

Juster = 10

Gjør dette fordi prosjektet er satt til å vise et standard antall tegn på hver side av den ettertraktede karakter. Dersom strengen er for kort, vil programmet produsere en feil.

4 Klikk på "Makroer" i utviklerdelen av Word-dokument og kjøre denne makroen for å se hvordan det fungerer. Hvis makro mislykkes, kontrollerer arbeidet ditt fra de ovennevnte retninger.

Hint

  • Forbedre programmet ved å tilby brukeren en mulighet til å fortsette å søke hjelp av en MsgBox å be med en setning som "fortsette å søke?" Og standard svarknapper "Ja / Nei." Legg til en rutine i koden for å øke Sted nummer for å flytte på fra den første, og gjenta det samme søket.
  • Denne koden fungerer like godt for å søke ord i stedet for et enkelt tegn.
  • Du må kanskje tinker med antall bokstaver i omkringliggende tekst som passer dine behov.
  • Jo kortere strengen søkte, jo mer sannsynlig "i sammenheng" skjerm blir også forkortet. På den annen side, trenger du ikke ønsker for mye omkringliggende teksten å vise, så det er en vurderingssak.