VBA Asc | Hvordan bruke Asc-funksjon i Excel VBA? (ASCII tegnkode)

Excel VBA Asc-funksjon

Asc-funksjonen i VBA brukes til å returnere en heltallverdi som representerer en tegnkode som tilsvarer det første tegnet i en gitt streng (streng gitt som argument / parameter) til funksjonen. Den kan brukes eller gis i en makrokode som vanligvis legges inn via Visual Basic Editor.

Excel-miljøet der makroen kjører i Visual Basic Editor (VBE) som kan brukes til å redigere og feilsøke makrokodene. Den inneholder makrokoden og kobler den til Excel-arbeidsboken.

Heltallverdien som returneres av Asc-funksjonen er den tilsvarende ASCII-tegnkoden i VBA. ASCII (American Standard Code for Information Interchange) er en 7-biters tegnkoding som totalt har 128 tegn definert i den, inkludert latinske alfabeter, ti arabiske tall, noen skilletegn og kontrolltegn. Det inkluderer ikke diakritiske tegn, da de krever minst 8 bit plass for koding. Denne 8-biters kodingen gjøres med ANSI (American National Standards Institute) som har totalt 256 tegn definert. ANSI kalles også utvidet ASCII.

Syntaks for VBA Asc-funksjon

Generell syntaks for ASC-funksjon er som følger:

ASC-formelsyntaks har følgende argument:

Streng: Påkrevd, representerer tekststrengen hvis første tegns tilsvarende tegnkode er ønsket og skal returneres.

Hvis strengen som leveres bare har ett tegn, returnerer funksjonen åpenbart den numeriske tegnkoden for selve tegnet.

Eksempler på Excel VBA Asc

La oss se nedenfor hvordan Asc kan brukes i Excel VBA.

Du kan laste ned denne VBA Asc-funksjonen Excel-mal her - VBA Asc-funksjonen Excel-mal

Eksempel 1

La oss si at vi har en Excel-fil som inneholder noen strenger, og vi ønsker å bruke Asc-funksjonen med disse strengene. La oss se strengene i filen:

Vi bruker Asc-funksjonen i VBA i en makro som kan skrives i Visual Basic Editor og kan nås på følgende måte:

Gå til Utvikler, og klikk deretter på Makroer:

Opprett nå et makronavn: Under 'Makronavn' skriver du et navn på makroen som ønskes opprettet, og velger PERSONAL.XLSB i rullegardinmenyen 'Makroer inn'. Makroene kan lagres i en personlig arbeidsbok som er en skjult arbeidsbok som åpnes i bakgrunnen når Excel startes. Hvis du velger PERSONAL.XLSB, lagres makroene i personlig arbeidsbok, slik at makroen alltid blir tilgjengelig siden den personlige arbeidsboken ikke er system- / filspesifikk.

Klikk på 'Opprett'.

Dette vil åpne et vindu med en VBA-underprosedyre i Visual Basic Editor som følger:

Nå definerer du variabelen Resultat

Kode:

Underkode () Dim Resultat1 Slutt Sub

Nå tilordner variabelen Resultat1 formelen for å returnere tegnkoden til strengen:

Kode:

Underkode () Dim Resultat1 Resultat1 = Asc ("Raj") Slutt Sub

Nå kan den resulterende verdien av Resultat1 vises og returneres ved hjelp av en VBA-meldingsboks (MsgBox) som følger:

Kode:

Underkode () Dim Resultat1 Resultat1 = Asc ("Raj") MsgBox Resultat1 Slutt Sub

Nå når vi kjører denne koden manuelt ved å klikke på "Kjør" øverst i vinduet eller ved å trykke på F5, får vi tegnkoden til strengens første bokstav: "Raj" vises i en meldingsboks som følger:

Så vi kan se i skjermbildet ovenfor at '82' returneres i en meldingsboks når du kjører makroen. Dette innebærer at tegnkoden for 'R' er 82.

La oss nå si i eksemplet ovenfor at vi ønsker å finne tegnkoden for strengen: “Karan”. For å gjøre dette følger vi de samme trinnene som ovenfor.

I koden i stedet for Raj vil vi skrive Karan for å få karakterkoden.

Kode:

 Understreng2 () Dim Resultat2 Resultat2 = Asc ("Karan") MsgBox Resultat2 Slutt sub 

Nå kjører vi denne koden manuelt eller ved å trykke på F5, og vi får tegnkoden til strengens første bokstav: “Karan” vises i en meldingsboks som følger:

Så vi kan se i skjermbildet ovenfor at når du kjører makroen, returneres '75' i en meldingsboks. Dette innebærer at en tegnkode for 'K' er 75.

La oss nå se hvordan resultatet endres for de gjenværende strengene:

Kode:

 Understreng3 () Dim Resultat2 Resultat2 = Asc ("Heena") MsgBox Resultat2 Slutt Sub 

 Understreng4 () Dim Resultat2 Resultat2 = Asc ("Arun") MsgBox Resultat2 Slutt sub 

 Understreng5 () Dim Resultat2 Resultat2 = Asc ("A") MsgBox Resultat2 Slutt Sub 

 Understreng6 () Dim Resultat2 Resultat2 = Asc ("a") MsgBox Resultat2 Slutt Sub 

Når du kjører disse underprosedyrene en etter en, returneres følgende tegnkoder i meldingsboksen (en om gangen). Dette er listen over tilsvarende verdier som er returnert for strengene ovenfor.

Så som skjermbildet ovenfor illustrerer, kan vi se at ASC-funksjonen returnerer tegnkoden som 65 for strengen: "Arun", og også for strengen: "A". Dette er fordi tegnkoden som returneres er VBA ASCII eller tilsvarende tegnkode for første bokstav i strengen i tilfelle strengen er mer enn ett tegn. Derfor returneres 65 for begge som strengens første eller første tegn: "Arun" er også 'A'.

Eksempel 2

Hvis strengen levert som parameter / argument til VBA ASC-funksjonen er en tom / tom streng (eller en streng uten tegn), returnerer funksjonen en kjøretidsfeil.

Følgende kode forklarer det samme.

 Sub blank () Dim result result = Asc ("") MsgBox (result) End Sub 

Når vi kjører denne koden, får vi kjøringsfeilen som følger.

Så vi kan se i skjermbildet ovenfor at når strengen som leveres som parameter eller argument til ASC-funksjonen er tom / tom, returnerer funksjonen en kjøretidsfeil.

Ting å huske

  • Strengen som leveres til VBA ASC-funksjonen kan være et hvilket som helst gyldig strenguttrykk.
  • Asc-funksjonen er store og små bokstaver.
  • Heltallverdien som returneres av Asc-funksjonen er i området 0-255.
  • ASCII-kodene i VBA for AZ er 65-90, og for az er 97-122.
  • Navnet gitt til en makro eller underprosedyre kan ikke være navnet på en eller annen standardfunksjon i VBA. Hvis det heter så, vil underprosedyren vise en feil.