VBA Asc | Как использовать функцию Asc в Excel VBA? (Код символа ASCII)

Функция Excel VBA Asc

Функция Asc в VBA используется для возврата целочисленного значения, представляющего код символа, соответствующий первому символу предоставленной строки (строка, предоставленная как аргумент / параметр) функции. Его можно использовать или указать в коде макроса, который обычно вводится через редактор Visual Basic.

Среда Excel, в которой макрос запускается в редакторе Visual Basic (VBE), который можно использовать для редактирования и отладки кодов макросов. Он содержит код макроса и связывает его с книгой Excel.

Целочисленное значение, возвращаемое функцией Asc, является соответствующим кодом символа ASCII в VBA. ASCII (Американский стандартный код для обмена информацией) - это 7-битная кодировка символов, в которой в общей сложности определены 128 символов, включая латинские алфавиты, десять арабских цифр, некоторые знаки препинания и управляющие символы. Он не включает диакритические символы, так как для кодирования им требуется минимум 8 бит. Это 8-битное кодирование выполняется с помощью ANSI (Американский национальный институт стандартов), в котором определено в общей сложности 256 символов. ANSI также называют расширенным ASCII.

Синтаксис функции VBA Asc

Общий синтаксис для функции ASC следующий:

Синтаксис формулы ASC имеет следующий аргумент:

Строка: Обязательный, представляет текстовую строку, для первого символа которой требуется код символа, соответствующий первому символу, который должен быть возвращен.

Если предоставленная строка содержит только один символ, тогда функция, очевидно, возвращает числовой код символа для самого этого символа.

Примеры Excel VBA Asc

Давайте посмотрим ниже, как можно использовать Asc в Excel VBA.

Вы можете скачать этот шаблон Excel с функцией VBA Asc здесь - Шаблон Excel с функцией VBA Asc

Пример # 1

Допустим, у нас есть файл Excel, содержащий некоторые строки, и мы хотим использовать функцию Asc с этими строками. Давайте посмотрим на строки, содержащиеся в файле:

Мы используем функцию Asc в VBA в макросе, который может быть написан в редакторе Visual Basic и доступен следующим образом:

Зайдите в Developer, а затем нажмите Macros:

Теперь создайте имя макроса: в разделе «Имя макроса» напишите имя макроса, который требуется создать, и выберите PERSONAL.XLSB в раскрывающемся списке «Макросы в». Макросы можно хранить в личной книге, которая представляет собой скрытую книгу, которая открывается в фоновом режиме при запуске Excel. Выбор PERSONAL.XLSB сохранит макросы в личной книге, что сделает макрос всегда доступным, поскольку личная книга не зависит от системы / файла.

Щелкните "Создать".

Это откроет окно с подпроцедурой VBA в редакторе Visual Basic следующим образом:

Теперь определите переменную Result

Код:

Дополнительный код () Тусклый результат1 Конец подпрограммы

Теперь присвойте переменной Result1 формулу для возврата символьного кода строки:

Код:

Дополнительный код () Dim Result1 Result1 = Asc ("Raj") End Sub

Теперь результирующее значение Result1 можно отобразить и вернуть с помощью окна сообщения VBA (MsgBox) следующим образом:

Код:

Дополнительный код () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

Теперь, когда мы запускаем этот код вручную, щелкнув «Выполнить» в верхней части окна или нажав F5, мы получим символьный код первой буквы строки: «Raj», отображаемый в окне сообщения следующим образом:

Итак, на скриншоте выше мы видим, что при запуске макроса в окне сообщения возвращается «82». Это означает, что код символа для 'R' - 82.

Теперь предположим, что в приведенном выше примере мы хотим найти код символа для строки: «Каран». Для этого мы выполняем те же действия, что и выше.

В коде вместо Raj мы напишем Karan, чтобы получить код символа.

Код:

 Sub String2 () Dim Result2 Result2 = Asc ("Karan") MsgBox Result2 End Sub 

Теперь мы запускаем этот код вручную или нажатием F5 и получаем символьный код первой буквы строки: «Каран», отображаемый в окне сообщения следующим образом:

Итак, на скриншоте выше мы видим, что при запуске макроса в окне сообщения возвращается «75». Это означает, что код символа для «K» равен 75.

Теперь посмотрим, как изменится результат для остальных строк:

Код:

 Sub String3 () Dim Result2 Result2 = Asc ("Heena") MsgBox Result2 End Sub 

 Sub String4 () Dim Result2 Result2 = Asc ("Arun") MsgBox Result2 End Sub 

 Sub String5 () Dim Result2 Result2 = Asc ("A") MsgBox Result2 End Sub 

 Sub String6 () Dim Result2 Result2 = Asc ("a") MsgBox Result2 End Sub 

При последовательном запуске этих подпроцедур в окне сообщения возвращаются следующие коды символов (соответственно по одному). Это список соответствующих значений, возвращаемых для указанных выше строк.

Итак, как показано на приведенном выше снимке экрана, мы можем видеть, что функция ASC возвращает код символа как 65 для строки: «Arun», а также для строки: «A». Это связано с тем, что возвращаемый код символа представляет собой код символа VBA ASCII или эквивалентный код символа для первой буквы строки в случае, если строка содержит более одного символа. Следовательно, 65 возвращается как для начального, так и для первого символа строки: «Arun» также является «A».

Пример # 2

Если строка, предоставленная в качестве параметра / аргумента функции VBA ASC, является пустой / пустой строкой (или строкой без символов), тогда функция возвращает ошибку времени выполнения.

Следующий код объясняет то же самое.

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

Когда мы запускаем этот код, мы получаем следующую ошибку времени выполнения.

Итак, на приведенном выше снимке экрана мы видим, что, когда строка, предоставленная в качестве параметра или аргумента функции ASC, пуста / пуста, функция возвращает ошибку времени выполнения.

То, что нужно запомнить

  • Строка, передаваемая в функцию VBA ASC, может быть любым допустимым строковым выражением.
  • Функция Asc чувствительна к регистру.
  • Целочисленное значение, возвращаемое функцией Asc, находится в диапазоне 0–255.
  • Коды ASCII в VBA для AZ - 65-90, а для az - 97-122.
  • Имя, данное макросу или подпроцедуре, не может быть именем некоторой функции по умолчанию в VBA. Если это так, то подпроцедура покажет ошибку.