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ụ
- 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. ”
- 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
- 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
DecHexBinaryHTMLCharDescription000NULNull111SOHStart of Header2210STXStart of Text3311ETXEnd of Text44100EOTEnd of Transmission55101ENQEnquiry66110ACKAcknowledge77111BELBell881000BSBackspace991001 HTHorizontal Tab100A1010 LFLine Feed110B1011VTVertical Tab120C1100FFForm 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 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~~Tilde1277F1111111DELDeleteThoá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
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