VBA Asc

Excel VBA Asc-funktion

Asc-funktionen i VBA används för att returnera ett heltal som representerar en teckenkod som motsvarar det första tecknet i en levererad sträng (sträng tillhandahållen som argument / parameter) till funktionen. Den kan användas eller ges i en makrokod som vanligtvis anges via Visual Basic Editor.

Excel-miljön där makrot körs i Visual Basic Editor (VBE) som kan användas för att redigera och felsöka makrokoderna. Den innehåller makrokoden och länkar den till Excel-arbetsboken.

Heltalsvärdet som returneras av Asc-funktionen är motsvarande ASCII-teckenkod i VBA. ASCII (American Standard Code for Information Interchange) är en 7-bitars teckenkodning som har totalt 128 tecken definierade, inklusive latinska alfabet, tio arabiska siffror, vissa skiljetecken och kontrolltecken. Det inkluderar inte diakritiska tecken eftersom de kräver minst 8 bitar för kodning. Denna 8-bitars kodning görs med ANSI (American National Standards Institute) som har totalt 256 tecken definierade. ANSI kallas också förlängd ASCII.

Syntax för VBA Asc-funktion

Allmän syntax för ASC-funktionen är som följer:

AST-formelsyntaxen har följande argument:

Sträng: Obligatorisk, representerar textsträngen vars första tecken motsvarande teckenkod önskas och ska returneras.

Om den medföljande strängen bara har ett tecken, returnerar funktionen uppenbarligen den numeriska teckenkoden för själva tecknet.

Exempel på Excel VBA Asc

Låt oss se nedan hur Asc kan användas i Excel VBA.

Du kan ladda ner denna VBA Asc-funktion Excel-mall här - VBA Asc-funktion Excel-mall

Exempel nr 1

Låt oss säga att vi har en Excel-fil som innehåller några strängar, och vi vill använda Asc-funktionen med dessa strängar. Låt oss se strängarna i filen:

Vi använder Asc-funktionen i VBA i ett makro som kan skrivas i Visual Basic Editor och kan nås på följande sätt:

Gå till utvecklare och klicka sedan på makron:

Skapa nu ett makronamn: Skriv under "Makronamn" ett namn på det makro som önskas skapas och välj PERSONAL.XLSB i rullgardinsmenyn "Makron in". Makronen kan lagras i en personlig arbetsbok som är en dold arbetsbok som öppnas i bakgrunden när Excel startas. Att välja PERSONAL.XLSB sparar makron i den personliga arbetsboken, vilket gör att makrot alltid blir tillgängligt eftersom den personliga arbetsboken inte är system / filspecifik.

Klicka på 'Skapa'.

Detta öppnar ett fönster med ett VBA-underförfarande i Visual Basic Editor enligt följande:

Definiera nu variabeln Resultat

Koda:

Underkod () Dim Resultat1 Slut Sub

Tilldela nu variabeln Result1 med formeln för att returnera teckenkoden för strängen:

Koda:

Underkod () Dim Resultat1 Resultat1 = Asc ("Raj") Slut Sub

Nu kan det resulterande värdet för Resultat1 visas och returneras med en VBA-meddelanderuta (MsgBox) enligt följande:

Koda:

Underkod () Dim Resultat1 Resultat1 = Asc ("Raj") MsgBox Resultat1 Slut Sub

Nu när vi kör den här koden manuellt genom att klicka på "Kör" högst upp i fönstret eller genom att trycka på F5 får vi teckenkoden för den första bokstaven i strängen: "Raj" visas i en meddelandefält enligt följande:

Så vi kan se i ovanstående skärmdump att när du kör makrot returneras '82' i en meddelanderuta. Detta innebär att teckenkoden för 'R' är 82.

Låt oss nu säga i exemplet ovan att vi vill hitta teckenkoden för strängen: “Karan”. För att göra detta följer vi samma steg som ovan.

I koden istället Raj kommer vi att skriva Karan för att få sin karaktärskod.

Koda:

 Understräng2 () Dim Resultat2 Resultat2 = Asc ("Karan") MsgBox Resultat2 Slut Sub 

Nu kör vi den här koden manuellt eller genom att trycka på F5 och vi får teckenkoden för den första bokstaven i strängen: “Karan” visas i en meddelandefält enligt följande:

Så vi kan se i ovanstående skärmdump att när du kör makrot returneras '75' i en meddelandefält. Detta innebär att en teckenkod för 'K' är 75.

Låt oss nu se hur resultatet ändras för de återstående strängarna:

Koda:

 Substräng3 () Dim Resultat2 Resultat2 = Asc ("Heena") MsgBox Resultat2 Slut Sub 

 Understräng4 () Dim Resultat2 Resultat2 = Asc ("Arun") MsgBox Resultat2 Slut Sub 

 Understräng5 () Dim Resultat2 Resultat2 = Asc ("A") MsgBox Resultat2 Slut Sub 

 Understräng6 () Dim Resultat2 Resultat2 = Asc ("a") MsgBox Resultat2 Slut Sub 

När du kör dessa underprocedurer en efter en returneras följande teckenkoder i meddelandefältet (en i taget). Detta är listan över motsvarande värden som returneras för ovanstående strängar.

Så som ovanstående skärmdump illustrerar kan vi se att ASC-funktionen returnerar teckenkoden som 65 för strängen: "Arun", och även för strängen: "A". Detta beror på att teckenkoden som returneras är VBA ASCII eller motsvarande teckenkod för strängens första bokstav om strängen är mer än ett tecken. Därför returneras 65 för båda som första eller första tecknet i strängen: "Arun" är också "A".

Exempel 2

Om strängen som tillhandahålls som parameter / argument till VBA ASC-funktionen är en tom / tom sträng (eller en sträng utan tecken), returnerar funktionen ett körtidsfel.

Följande kod förklarar detsamma.

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

När vi kör den här koden får vi körtidsfelet enligt följande.

Så vi kan se i skärmbilden ovan att när strängen som tillhandahålls som parameter eller argument till ASC-funktionen är tom / tom, returnerar funktionen ett körtidsfel.

Saker att komma ihåg

  • Strängen som levereras till VBA ASC-funktionen kan vara valfritt stränguttryck.
  • Asc-funktionen är skiftlägeskänslig.
  • Heltalsvärdet som returneras av Asc-funktionen ligger i området 0-255.
  • ASCII-koder i VBA för AZ är 65-90 och för az är 97-122.
  • Namnet på ett makro eller delprocedur kan inte vara namnet på någon standardfunktion i VBA. Om det heter så kommer underproceduren att visa ett fel.