VBA Asc - Hur använder jag Asc-funktion i Excel VBA? (ASCII-teckenkod)

Innehållsförteckning

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 totalt har 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: Krävs, representerar textsträngen vars första tecken motsvarande teckenkod önskas och ska returneras.

Om den levererade 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.

Exempel 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: Under "Makronamn" skriv ett namn på det makro som önskas skapas och välj PERSONAL.XLSB i rullgardinsmenyn "Makron i." Makronen kan lagras i en personlig arbetsbok som är en dold arbetsbok som öppnas i bakgrunden när Excel startas. Om du väljer PERSONAL.XLSB sparas makron i den personliga arbetsboken, vilket gör makrot alltid tillgängligt eftersom den personliga arbetsboken inte är system / filspecifik.

Klicka på 'Skapa'.

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

Definiera nu variabeln Resultat1

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 skärmdumpen ovan att '82' returneras i en meddelandefält när du kör makrot. Detta innebär att teckenkoden för 'R' är 82.

Låt oss nu säga i exemplet ovan, 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 för Raj, skriver vi 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:

Understrä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
Substrä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 den 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, och sedan returnerar funktionen ett körtidsfel.

Saker att komma ihåg

  • Strängen som levereras till VBA ASC-funktionen kan vara vilket giltigt stränguttryck som helst.
  • 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.

Intressanta artiklar...