VBA Asc | Làm thế nào để sử dụng hàm Asc trong Excel VBA? (Mã ký tự ASCII)

Hàm Asc trong Excel VBA

Hàm Asc trong VBA được sử dụng để trả về một giá trị số nguyên đại diện cho mã ký tự tương ứng với ký tự đầu tiên của một chuỗi được cung cấp (chuỗi được cung cấp dưới dạng đối số / tham số) cho hàm. Nó có thể được sử dụng hoặc cung cấp trong một mã macro thường được nhập thông qua Visual Basic Editor.

Môi trường Excel mà macro chạy trong Visual Basic Editor (VBE) có thể được sử dụng để chỉnh sửa và gỡ lỗi mã macro. Nó giữ mã macro và liên kết nó với sổ làm việc Excel.

Giá trị số nguyên được trả về bởi hàm Asc là mã ký tự ASCII tương ứng trong VBA. ASCII (American Standard Code for Information Interchange) là mã hóa ký tự 7 bit có tổng cộng 128 ký tự được xác định trong đó bao gồm bảng chữ cái Latinh, mười chữ số Ả Rập, một số dấu câu và ký tự điều khiển. Nó không bao gồm các ký tự dấu phụ vì chúng yêu cầu không gian tối thiểu là 8 bit để mã hóa. Mã hóa 8-bit này được thực hiện với ANSI (Viện Tiêu chuẩn Quốc gia Hoa Kỳ) có tổng cộng 256 ký tự được xác định. ANSI còn được gọi là ASCII mở rộng.

Cú pháp của hàm VBA Asc

Cú pháp chung cho hàm ASC như sau:

Cú pháp công thức ASC có đối số sau:

Chuỗi: Bắt buộc, đại diện cho chuỗi văn bản có mã ký tự tương ứng của ký tự đầu tiên được mong muốn và sẽ được trả về.

Nếu chuỗi được cung cấp chỉ có một ký tự, thì hàm hiển nhiên trả về mã ký tự số cho chính ký tự đó.

Ví dụ về Excel VBA Asc

Hãy cùng chúng tôi xem bên dưới làm thế nào Asc có thể được sử dụng trong Excel VBA.

Bạn có thể tải xuống Mẫu Excel Hàm Asc VBA này tại đây - Mẫu Excel Hàm VBA Asc

Ví dụ 1

Giả sử chúng tôi có một tệp Excel chứa một số chuỗi và chúng tôi muốn sử dụng hàm Asc với các chuỗi này. Hãy cho chúng tôi xem các chuỗi có trong tệp:

Chúng tôi sử dụng hàm Asc trong VBA trong một macro có thể được viết trong Visual Basic Editor và có thể được truy cập như sau:

Đi tới Nhà phát triển, sau đó nhấp vào Macro:

Bây giờ, hãy tạo tên macro: Trong 'Tên macro', hãy viết tên của macro bạn muốn tạo và chọn PERSONAL.XLSB trong menu thả xuống của 'Macro In'. Các macro có thể được lưu trữ trong một sổ làm việc cá nhân là một sổ làm việc ẩn sẽ mở trong nền bất cứ khi nào khởi động Excel. Việc chọn PERSONAL.XLSB sẽ lưu các macro trong sổ làm việc Cá nhân, do đó làm cho macro luôn sẵn dùng vì Sổ làm việc Cá nhân không dành riêng cho hệ thống / tệp.

Nhấp vào 'Tạo'.

Thao tác này sẽ mở ra một cửa sổ có thủ tục con VBA trong Visual Basic Editor như sau:

Bây giờ, hãy xác định biến Kết quả

Mã:

Mã phụ () Kết quả mờ 1 Kết thúc phụ

Bây giờ, hãy gán biến Result1 với công thức để trả về mã ký tự của chuỗi:

Mã:

Mã phụ () Dim Result1 Result1 = Asc ("Raj") End Sub

Bây giờ giá trị kết quả của Result1 có thể được hiển thị và trả về bằng cách sử dụng hộp thông báo VBA (MsgBox) như sau:

Mã:

Mã phụ () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

Bây giờ khi chúng tôi chạy mã này theo cách thủ công bằng cách nhấp vào 'Chạy' ở đầu cửa sổ hoặc bằng cách nhấn F5, chúng tôi nhận được mã ký tự của chữ cái đầu tiên của chuỗi: "Raj" được hiển thị trong Hộp Thông báo như sau:

Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng khi chạy macro, '82' được trả về trong một hộp thông báo. Điều này ngụ ý rằng mã ký tự cho 'R' là 82.

Bây giờ, chúng ta hãy nói trong ví dụ trên, chúng ta muốn tìm mã ký tự cho chuỗi: “Karan”. Để thực hiện, chúng ta làm theo các bước tương tự như trên.

Trong đoạn mã thay vì Raj, chúng ta sẽ viết Karan để lấy mã ký tự của nó.

Mã:

 Chuỗi con2 () Dim Result2 Result2 = Asc ("Karan") MsgBox Result2 End Sub 

Bây giờ chúng tôi chạy mã này theo cách thủ công hoặc bằng cách nhấn F5 và chúng tôi nhận được mã ký tự của ký tự đầu tiên của chuỗi: “Karan” được hiển thị trong Hộp thông báo như sau:

Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng khi chạy macro, '75' được trả về trong một hộp thông báo. Điều này ngụ ý rằng mã ký tự cho 'K' là 75.

Bây giờ chúng ta hãy xem kết quả thay đổi như thế nào đối với các chuỗi còn lại:

Mã:

 Chuỗi con3 () Dim Result2 Result2 = Asc ("Heena") MsgBox Result2 End Sub 

 Chuỗi con4 () Dim Result2 Result2 = Asc ("Arun") MsgBox Result2 End Sub 

 Chuỗi con5 () Dim Result2 Result2 = Asc ("A") MsgBox Result2 End Sub 

 Chuỗi con6 () Dim Result2 Result2 = Asc ("a") MsgBox Result2 End Sub 

Khi chạy thủ tục con này từng cái một, các mã ký tự sau được trả về trong hộp thông báo (tương ứng với từng ký tự). Đây là danh sách các giá trị tương ứng được trả về cho các chuỗi trên.

Vì vậy, như hình minh họa ở trên, chúng ta có thể thấy rằng hàm ASC trả về mã ký tự là 65 cho chuỗi: “Arun” và cũng cho chuỗi: “A”. Điều này là do mã ký tự được trả về là VBA ASCII hoặc mã ký tự tương đương cho ký tự đầu tiên của chuỗi trong trường hợp chuỗi có nhiều hơn một ký tự. Do đó, 65 được trả về cho cả ký tự đầu tiên hoặc ký tự đầu tiên của chuỗi: “Arun” cũng là 'A'.

Ví dụ số 2

Nếu chuỗi được cung cấp dưới dạng tham số / đối số cho hàm VBA ASC là một chuỗi trống / trống (hoặc một chuỗi không có ký tự) thì hàm trả về lỗi thời gian chạy.

Mã sau giải thích tương tự.

 Khoảng trống phụ () Kết quả mờ kết quả = Asc ("") MsgBox (kết quả) Kết quả phụ 

Khi chúng tôi chạy mã này, chúng tôi nhận được lỗi Thời gian chạy như sau.

Vì vậy, chúng ta có thể thấy trong ảnh chụp màn hình ở trên rằng khi chuỗi được cung cấp dưới dạng tham số hoặc đối số cho hàm ASC trống / rỗng, thì hàm trả về lỗi thời gian chạy.

Những điều cần ghi nhớ

  • Chuỗi được cung cấp cho hàm VBA ASC có thể là bất kỳ biểu thức chuỗi hợp lệ nào.
  • Hàm Asc phân biệt chữ hoa chữ thường.
  • Giá trị số nguyên được trả về bởi hàm Asc nằm trong khoảng 0-255.
  • Mã ASCII trong VBA cho AZ là 65-90 và az là 97-122.
  • Tên được đặt cho macro hoặc thủ tục con không được là tên của một số hàm mặc định trong VBA. Nếu được đặt tên như vậy, thì thủ tục con sẽ hiển thị lỗi.

$config[zx-auto] not found$config[zx-overlay] not found