VBA Asc | Hvordan bruges Asc-funktion i Excel VBA? (ASCII tegnkode)

Excel VBA Asc-funktion

Asc-funktionen i VBA bruges til at returnere en heltalværdi, der repræsenterer en tegnkode svarende til det første tegn i en leveret streng (streng leveret som argument / parameter) til funktionen. Det kan bruges eller gives i en makrokode, der normalt indtastes via Visual Basic Editor.

Excel-miljøet, hvor makroen kører i Visual Basic Editor (VBE), der kan bruges til at redigere og debugge makrokoderne. Den indeholder makrokoden og linker den til Excel-projektmappen.

Heltalsværdien, der returneres af Asc-funktionen, er den tilsvarende ASCII-tegnkode i VBA. ASCII (American Standard Code for Information Interchange) er en 7-bit tegnkodning, der i alt har 128 tegn defineret, inklusive latinske alfabeter, ti arabiske tal, nogle tegnsætningstegn og kontroltegn. Det inkluderer ikke diakritiske tegn, da de kræver mindst 8 bit plads til kodning. Denne 8-bit kodning udføres med ANSI (American National Standards Institute), der har i alt 256 tegn defineret. ANSI kaldes også udvidet ASCII.

Syntaks for VBA Asc-funktion

Generel syntaks for ASC-funktion er som følger:

ASC-formelsyntaks har følgende argument:

Streng: Påkrævet, repræsenterer tekststrengen, hvis første tegns tilsvarende tegnkode ønskes og skal returneres.

Hvis den medfølgende streng kun har et tegn, returnerer funktionen naturligvis den numeriske tegnkode for selve tegnet.

Eksempler på Excel VBA Asc

Lad os se nedenfor, hvordan Asc kan bruges i Excel VBA.

Du kan downloade denne VBA Asc-funktion Excel-skabelon her - VBA Asc-funktion Excel-skabelon

Eksempel nr. 1

Lad os sige, at vi har en Excel-fil, der indeholder nogle strenge, og vi ønsker at bruge Asc-funktionen med disse strenge. Lad os se strengene i filen:

Vi bruger Asc-funktionen i VBA i en makro, der kan skrives i Visual Basic Editor og kan fås som følger:

Gå til Udvikler, og klik derefter på Makroer:

Opret nu et makronavn: Skriv under 'Makronavn' et navn på den makro, der ønskes oprettet, og vælg PERSONAL.XLSB i rullemenuen 'Makroer i'. Makroerne kan gemmes i en personlig projektmappe, der er en skjult projektmappe, der åbnes i baggrunden, hver gang Excel startes. Hvis du vælger PERSONAL.XLSB, gemmes makroerne i den personlige projektmappe, hvilket gør makroen altid tilgængelig, da den personlige projektmappe ikke er system / filspecifik.

Klik på 'Opret'.

Dette åbner et vindue med en VBA-underprocedure i Visual Basic Editor som følger:

Definer nu variablen Resultat

Kode:

Underkode () Dim Resultat1 Afslut Sub

Tildel nu variablen Resultat1 med formlen for at returnere tegnkoden for strengen:

Kode:

Underkode () Dim Resultat1 Resultat1 = Asc ("Raj") Afslut sub

Nu kan den resulterende værdi af Resultat1 vises og returneres ved hjælp af et VBA-meddelelsesfelt (MsgBox) som følger:

Kode:

Underkode () Dim Resultat1 Resultat1 = Asc ("Raj") MsgBox Resultat1 Afslut sub

Når vi nu kører denne kode manuelt ved at klikke på 'Kør' øverst i vinduet eller ved at trykke på F5, får vi tegnkoden i det første bogstav i strengen: "Raj" vises i en meddelelsesboks som følger:

Så vi kan se i ovenstående skærmbillede, at ved kørsel af makroen returneres '82' i en meddelelsesboks. Dette indebærer, at tegnkoden for 'R' er 82.

Lad os nu sige i ovenstående eksempel, at vi ønsker at finde tegnkoden til strengen: "Karan". For at gøre dette følger vi de samme trin som ovenfor.

I koden i stedet for Raj skriver vi Karan for at få sin karakterkode.

Kode:

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

Nu kører vi denne kode manuelt eller ved at trykke på F5, og vi får tegnkoden i det første bogstav i strengen: "Karan" vises i en meddelelsesboks som følger:

Så vi kan se i ovenstående skærmbillede, at '75' returneres i en meddelelsesboks ved kørsel af makroen. Dette indebærer, at en tegnkode for 'K' er 75.

Lad os nu se, hvordan resultatet ændres for de resterende strenge:

Kode:

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

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

 Understreng5 () Dim Resultat2 Resultat2 = Asc ("A") MsgBox Resultat2 Afslut sub 

 Understreng6 () Dim Resultat2 Resultat2 = Asc ("a") MsgBox Resultat2 Afslut sub 

Ved kørsel af disse underprocedurer en efter en returneres følgende tegnkoder i meddelelsesfeltet (henholdsvis en ad gangen). Dette er listen over tilsvarende værdier, der returneres for ovenstående strenge.

Så som ovenstående skærmbillede illustrerer, kan vi se, at ASC-funktionen returnerer tegnkoden som 65 for strengen: "Arun", og også for strengen: "A". Dette skyldes, at den returnerede tegnkode er VBA ASCII eller tilsvarende tegnkode for det første bogstav i strengen, hvis strengen er mere end et tegn. Derfor returneres 65 for begge som det første eller første tegn i strengen: “Arun” er også 'A'.

Eksempel 2

Hvis den streng, der leveres som parameter / argument til VBA ASC-funktionen, er en tom / tom streng (eller en streng uden tegn), returnerer funktionen en kørselstidsfejl.

Følgende kode forklarer det samme.

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

Når vi kører denne kode, får vi kørselsfejlen som følger.

Så vi kan se i ovenstående skærmbillede, at når strengen leveret som parameter eller argument til ASC-funktionen er tom / tom, returnerer funktionen en kørselstidsfejl.

Ting at huske

  • Strengen, der leveres til VBA ASC-funktionen, kan være et hvilket som helst gyldigt strengudtryk.
  • Asc-funktionen er store og små bogstaver.
  • Heltalsværdien, der returneres af Asc-funktionen, er i området 0-255.
  • ASCII-koder i VBA for AZ er 65-90, og for az er 97-122.
  • Navnet på en makro eller underprocedure kan ikke være navnet på en eller anden standardfunktion i VBA. Hvis det hedder det, vil underproceduren vise en fejl.