Ký tự thoát Excel

Trong thời gian chạy chương trình, bạn có thể cần hiển thị một số thông tin nhất định hoặc đặt câu hỏi. Một số ví dụ

  1. Trong khi tăng một vé hỗ trợ, chúng tôi nhận được một số vé sau khi nhấp vào nút gửi. Cùng với một số, chúng tôi cũng nhận được một thông báo như “Giữ số này để tham khảo trong tương lai. Bạn sẽ nhận được phản hồi trong vòng 6 ngày. ”
  2. Trong khi nộp tờ khai thuế thu nhập, chúng tôi có thể nhận được thông báo, “Tờ khai của bạn đã được nộp thành công. ” Và sau đó là một số hướng dẫn bổ sung
  3. Khi điền biểu mẫu, chúng tôi có thể nhận được hướng dẫn từ thông báo từ chối/lỗi cho biết cấu trúc mật khẩu dự kiến ​​hoặc các trường bắt buộc

Các thông báo này là các chuỗi động hoặc được mã hóa cứng được nhập trong dấu ngoặc kép

ví dụ

1. Id người dùng của bạn là “RAD00234”.

2. Số lần đăng nhập không hợp lệ tối đa vào tài khoản ngân hàng này.

Tài khoản của bạn đã bị khóa vì lý do bảo mật

Vui lòng liên hệ với chi nhánh của bạn để mở khóa tài khoản của bạn

Chuỗi thường được trình bày trong dấu ngoặc kép nói chung. Trong ví dụ đầu tiên ở trên, giá trị id người dùng nằm trong dấu ngoặc kép. Điều này có nghĩa là dấu ngoặc kép đầu tiên — dấu ngoặc kép phía trước id người dùng — sẽ đánh dấu phần cuối của chuỗi đó. Vì vậy, bạn có thể đoán làm thế nào có thể hiển thị toàn bộ câu đó, dấu ngoặc kép và tất cả không?

Trong ví dụ thứ hai, bạn có thấy rằng có ba câu với mỗi câu bắt đầu ở một dòng mới không?

Đó là một ký tự thoát mà bạn hiển thị văn bản như thế này. Một ký tự thoát giúp (các) ký tự theo sau nó được ngôn ngữ lập trình diễn giải khác với hành vi mặc định của chúng

Ký tự thoát trong VBA

Trong các ngôn ngữ lập trình “\” — dấu gạch chéo ngược — thường được sử dụng làm ký tự thoát

Thí dụ. \n cho dòng mới, \t cho không gian tab

Nhưng trong VBA, chúng ta sử dụng một hàm tên là “chr()”. Hàm dựng sẵn này trả về giá trị tương đương ASCII của tham số

cú pháp

Chr()

Trong đó số có thể là bất kỳ số nào từ 0 đến 127

Hàm này trả về giá trị ASCII tương ứng từ bảng bên dưới

Bảng ASCII

DecHexBinaryHTMLCharDescription000�NULNull111SOHStart of Header2210STXStart of Text3311ETXEnd of Text44100EOTEnd of Transmission55101ENQEnquiry66110ACKAcknowledge77111BELBell881000BSBackspace991001 HTHorizontal Tab100A1010 LFLine Feed110B1011 VTVertical Tab120C1100 FFForm Feed130D1101 CRCarriage Return140E1110SOShift Out150F1111SIShift In161010000DLEData Link Escape171110001DC1Device Control 1181210010DC2Device Control 2191310011DC3Device Control 3201410100DC4Device Control 4211510101NAKNegative Acknowledge221610110SYNSynchronize231710111ETBEnd of Transmission Block241811000CANCancel251911001EMEnd of Medium261A11010SUBSubstitute271B11011ESCEscape281C11100FSFile Separator291D11101GSGroup Separator301E11110RSRecord Separator311F11111USUnit Separator3220100000 spaceSpace3321100001!!Exclamation mark3422100010"“Double quote3523100011##Number3624100100$$Dollar sign3725100101%%Percent3826100110&&Ampersand3927100111'‘Single quote4028101000((Left parenthesis4129101001))Right parenthesis422A101010**Asterisk432B101011++Plus442C101100,,Comma452D101101-–Minus462E101110..Period472F101111//Slash483011000000Zero493111000111One503211001022Two513311001133Three523411010044Four533511010155Five543611011066Six553711011177Seven563811100088Eight573911100199Nine583A111010::Colon593B111011;;Semicolon603C111100<< Less than613D111101==Equality sign623E111110>> Greater than633F111111??Question mark64401000000@@At sign65411000001AACapital / Upper case  A66421000010BBCapital / Upper case  B67431000011CCCapital / Upper case  C68441000100DDCapital / Upper case  D69451000101EECapital / Upper case  E70461000110FFCapital / Upper case  F71471000111GGCapital / Upper case  G72481001000HHCapital / Upper case  H73491001001IICapital / Upper case  I744A1001010JJCapital / Upper case  J754B1001011KKCapital / Upper case  K764C1001100LLCapital / Upper case  L774D1001101MMCapital / Upper case  M784E1001110NNCapital / Upper case  N794F1001111OOCapital / Upper case  O80501010000PPCapital / Upper case  P81511010001QQCapital / Upper case  Q82521010010RRCapital / Upper case  R83531010011SSCapital / Upper case  S84541010100TTCapital / Upper case  T85551010101UUCapital / Upper case  U86561010110VVCapital / Upper case  V87571010111WWCapital / Upper case  W88581011000XXCapital / Upper case  X89591011001YYCapital / Upper case  Y905A1011010ZZCapital / Upper case  Z915B1011011[[Left square bracket925C1011100\\Backslash935D1011101]]Right square bracket945E1011110^^Caret / circumflex955F1011111__Underscore96601100000``Grave / accent97611100001aaLower case  a98621100010bbLower case  b99631100011ccLower case  c100641100100ddLower case  d101651100101eeLower case  e102661100110ffLower case  f103671100111ggLower case  g104681101000hhLower case  h105691101001iiLower case  i1066A1101010jjLower case  j1076B1101011kkLower case  k1086C1101100llLower case  l1096D1101101mmLower case  m1106E1101110nnLower case  n1116F1101111ooLower case  o112701110000ppLower case  p113711110001qqLower case  q114721110010rrLower case  r115731110011ssLower case  s116741110100ttLower case  t117751110101uuLower case  u118761110110vvLower case  v119771110111wwLower case  w120781111000xxLower case  x121791111001yyLower case  y1227A1111010zzLower case  z1237B1111011{{Left curly bracket1247C1111100||Vertical bar1257D1111101}}Right curly bracket1267E1111110~~Tilde1277F1111111DELDelete

Thoát khỏi một báo giá kép

Để hiển thị một dấu ngoặc kép như một phần của chuỗi, chúng ta phải sử dụng dấu ngoặc kép hai lần liên tiếp. Vì vậy, bạn nên sử dụng dấu ngoặc kép để thoát khỏi dấu ngoặc kép

Dưới đây tôi cũng hướng dẫn các bạn cách sử dụng hàm Chr() để xuất ra dòng cấp, ký tự “#”, và “%”

Thí dụ

Sub demo_escape()

' see the differences in output
    Debug.Print "I love to drink tea."
    Debug.Print "I love to drink ""tea""."
    
    Debug.Print "I live in England."
    Debug.Print "I live in ""England""."
    
'chr(10) is equivalent to a new line. two sentences are concatenated here.
    Debug.Print "I have got promoted. What about you?"
    Debug.Print "I have got promoted." & Chr(10) & "What about you?"
 
    Debug.Print Chr(35) & "Number"
    Debug.Print Chr(37) & "Percent"
    
End Sub
Ký tự thoát Excel

Sự kết luận

Một ký tự thoát rất hữu ích để hiển thị các chuỗi hoặc thông báo theo cách chúng ta muốn. Là một chuyên gia tự động hóa, tôi đã phải đối mặt với các tình huống trong đó một số ký tự không xác định cần được xác định trên một trang web. Chức năng tích hợp sẵn Chr() đã giúp ích rất nhiều cho tôi trong những tình huống khó khăn như thế này

Tôi cũng đã sử dụng rộng rãi điều này trong quá trình mã hóa của mình vì tính mạnh mẽ và độ tin cậy của nó. VBA chắc chắn đã đơn giản hóa việc sử dụng các ký tự thoát bằng cách giới thiệu một hàm sử dụng bảng ASCII. Một mẹo thưởng cuối cùng — có một hàm ASCII() mà bạn có thể sử dụng để trả về số ASCII (Dec) từ bảng trên