Bài 7.1. Hàm xử lý về chuỗi, văn bản

Liên hệ QC

befaint

|||||||||||||
Tham gia
6/1/11
Bài viết
14,365
Được thích
19,323
(Danh mục các hàm trong VBA)

1. Hàm xử lý về chuỗi, văn bản

1.1. ASC
PHP:
Asc(String As String) 'As Long'
Trả về một số nguyên (0-255) đại diện cho mã ký tự tương ứng với một ký tự.
Nếu tham số string đưa vào nhiều hơn 1 ký tự thì kết quả trả về ứng với ký tự đầu tiên.
PHP:
Sub ASC_Fn()
    MsgBox Asc("A")
    MsgBox Asc("z")
End Sub
1.2. ASCW
PHP:
AscW(String As String) 'As Long'
Trả về một số nguyên (0-65535) đại diện cho mã ký tự tương ứng với một ký tự.
Nếu tham số string đưa vào nhiều hơn 1 ký tự thì kết quả trả về ứng với ký tự đầu tiên.
PHP:
Sub ASCW_Fn()
    MsgBox AscW("á")
    MsgBox AscW(" ")
End Sub
1.3. CHR
PHP:
Chr(CharCode as Long)
Trả về ký tự tương ứng với mã ký tự (0-255) chỉ định đưa vào.
PHP:
Sub CHR_Fn()
    MsgBox Chr(66)
End Sub
1.4. CHRW
PHP:
ChrW(CharCode as Long)
Trả về ký tự tương ứng với mã ký tự (0-65535) chỉ định đưa vào.
PHP:
Sub CHRW_Fn()
    Dim s As String
    s = ChrW(3000)
End Sub
1.5. CONCATENATE with "&"
PHP:
string1 & string2 [& string3 & string_n] 'As String'
Nối các chuỗi lại với nhau thành một chuỗi mới.
PHP:
Sub CONCATENATE_Fn()
    MsgBox "Day la " & "mot " & "vi du."
End Sub
1.6. FORMAT STRINGS
PHP:
Format (Expression, [Format ]) 'As String
Định dạng giá trị đưa vào theo định dạng chỉ định
Expression: Giá trị cần định dạng
Format: Tùy chọn định dạng đưa vào. Gồm:

Format.png

PHP:
Sub Format_Fn()
    MsgBox Format(1000000, "#,0")
    MsgBox Format("0", "On/Off")
    MsgBox Format("Sep 3, 2003", "Short Date")
    MsgBox Format(Date, "dd/mm/yyyy")
End Sub
1.7. INSTR
PHP:
InStr([Start],[String1],[String2],[Compare As VbCompareMethod = vbBinaryCompare]) 'As Long'
Trả về vị trí xuất hiện đầu tiên của chuỗi con trong chuỗi đang xét.
start: Tùy chọn, là vị trí bắt đầu tìm kiếm. Nếu không nhập thì mặc định là 1.
string1: Chuỗi đưa ra để xét
string2: Chuỗi con cần tìm
compare: Tùy chọn

Compare.png
Ghi chú:
Vị trí đầu tiên trong "string1" là 1.
Khi tìm vị trí của "string2" trong "string1", chức năng InStr thực hiện tìm kiếm theo từng chữ.
Nếu "string2" không được tìm thấy trong "string1", thì hàm InStr sẽ trả về 0.
PHP:
Sub INSTR_Fn()
    Dim LPos As Integer
    LPos = InStr(3, "Day la mot vi du!", "a")
    MsgBox LPos
    'Result: LPos=6'
End Sub
1.8. INSTRREV
PHP:
InStrRev(StringCheck As String,StringMatch As String,[Start As Long = -1],[Compare As VbCompareMethod = vbBinaryCompare]) 'As Long'
Trả về vị trí xuất hiện đầu tiên của chuỗi con trong chuỗi đang xét tính từ cuối chuỗi.
StringCheck: Chuỗi đưa ra để xét
StringMatch: Chuỗi cần tìm
start: Không bắt buộc. Đây là vị trí bắt đầu cho việc tìm kiếm. Nếu tham số này bị bỏ qua, việc tìm kiếm sẽ bắt đầu ở vị trí -1 là vị trí ký tự cuối cùng.
compare: Không bắt buộc. Đây là kiểu so sánh để thực hiện. Nó có thể là một trong các giá trị sau:

Compare.png
PHP:
Sub INSTRREV_Fn()
    Dim LPos As Integer
    LPos = InStrRev("Tim ky tu phia cuoi", "i")
    MsgBox LPos
    'Result: LPos=19'
    LPos = InStrRev("Tim ky tu phia cuoi", "i", 3)
    MsgBox LPos
    'Result: LPos=2'
End Sub
1.9. LCASE
PHP:
LCase(String) 'As String'
Chuyển chuỗi từ chữ in hoa thành chữ thường.
PHP:
Sub LCase_Fn()
    Dim lowerText As String
    lowerText = LCase("XIN CHAO!")
    ''Result: lowerText = "xin chao!"
End Sub
1.10. UCASE
PHP:
UCase(String) 'As String'
Chuyển chuỗi từ chữ thường thành chữ in hoa
PHP:
Sub UCase_Fn()
    Dim UpperText As String
    UpperText = UCase("xin chao!")
    ''Result: UpperText = "XIN CHAO!"
End Sub
1.11. LEFT
PHP:
Left(String,Length As Long) 'As String'
Trích xuất một chuỗi con từ một chuỗi, bắt đầu từ ký tự đầu tiên bên trái
String: Chuỗi đưa vào
Length: Số ký tự cần lấy
PHP:
Sub LEFT_Fn()
    MsgBox Left("Cat phan ben trai", 3)
    ''Result: "Cat"
End Sub
1.12. LEN
PHP:
Len(Expression) As Long 'As Long'
Trả về số ký tự của chuỗi
PHP:
Sub LEN_Fn()
    MsgBox Len("Day la mot chuoi.")
    ''Result=17
End Sub
1.13. LTRIM
PHP:
Ltrim(String) 'As String'
Loại bỏ khoảng trắng ở đầu (bên trái) chuỗi đưa vào.
PHP:
Sub LTRIM_Fn()
    MsgBox LTrim("   Day la mot vi du.")
    ''Result: "Day la mot vi du."
End Sub
1.14. MID
PHP:
Mid(String,Start As Long,[Length]) 'As String'
Trích xuất một chuỗi con từ một chuỗi (bắt đầu ở bất kỳ vị trí nào)
String: Chuỗi đưa vào.
Start: Vị trí bắt đầu trích xuất chuỗi con.
Length: Số ký tự cần trích xuất.
PHP:
Sub MID_Fn()
    MsgBox Mid("Cat khuc giua.", 5, 4)
    ''Result: "khuc"
End Sub
1.15. REPLACE
PHP:
Replace(Expression As String, Find As String, Replace As String, [Start As Long = 1], [Count As Long=-1],[Compare As VbComapareMethod = VbBinaryCompare]) 'As String'
Thay thế một chuỗi ký tự trong một chuỗi bởi một tập hợp các ký tự khác.
Expression: Chuỗi ký tự đưa vào.
Find: Chuỗi ký tự cần tìm để thay thế.
Replace: Chuỗi ký tự để thay thế mới.
Start: Không bắt buộc. Là vị trí bắt đầu tìm kiếm trong chuỗi đang xét, xét từ trái sang phải, bắt đầu =1
Count: Không bắt buộc. Là số lần xuất hiện để thay thế. Nếu bỏ qua tham số này thì sẽ thay thế tất cả các lần tìm thấy.
Compare: Không bắt buộc. Đây là kiểu so sánh để thực hiện. Nó có thể là một trong các giá trị sau:

Compare.png
PHP:
Sub REPLACE_Fn()
    MsgBox Replace("Doi cac ky tu a thanh ky tu x.", "a", "x")
End Sub
1.16. RIGHT
PHP:
Right(String,Length As Long) 'As String'
Trích một chuỗi con từ một chuỗi bắt đầu từ ký tự đầu tiên bên phải.
PHP:
Sub RIGHT_Fn()
    MsgBox Right("Ben phai", 4)
End Sub
1.17. RTRIM
PHP:
Rtrim(String) 'As String'
Loại bỏ khoảng trắng ở cuối (bên phải) chuỗi đưa vào.
PHP:
Sub RTRIM_Fn()
    MsgBox RTrim("Loai khoang trang ben phai.   ")
End Sub
1.18. SPACE
PHP:
SPACE(Number As Long) 'As String'
Trả về chuỗi là các ký tự khoảng trắng, với số lượng ký tự chỉ định đưa vào.
PHP:
Sub SPACE_Fn()
    MsgBox "Them" & SPACE(10) & "khoang trang."
End Sub
1.19. SPLIT
PHP:
Split(Expression As String, [Delimiter], [Limit As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare]) 'Array1D() As String'
Trả về một mảng 1 chiều, gồm các phần tử là các chuỗi con được tách ra từ chuỗi đưa vào bởi dấu phân cách, chỉ mục cận dưới của mảng luôn bằng 0 cho dù Option Base 1.
Expression: Bắt buộc. Chuỗi cần tách, gồm các chuỗi con và dấu phân cách. Nếu Len(Expression)=0 thì kết quả là một mảng có 1 phần từ là chuỗi có độ dài =0 ("").
Delimiter: Không bắt buộc. Dấu phân cách, là một chuỗi ký tự bất kỳ dùng để phân cách các chuỗi con trong Expression.
- Nếu Delimiter bỏ qua thì giá trị mặc định của Delimiter là một khoảng trắng " ".
- Nếu Delimiter không tìm thấy trong Expression hoặc Len(Delimiter)=0 thì kết quả trả về là một mảng có 1 phần tử chính là chuỗi gốc đưa vào.
Limit: Không bắt buộc. Là số chuỗi con nhiều nhất được tách ra từ chuỗi đưa vào. Nếu bỏ qua, giá trị mặc định Limit=-1, ứng với tất cả các chuỗi con được tách ra.
Compare: Không bắt buộc. Kiểu so sánh để thực hiện khi phân tích các chuỗi con.

Compare.png
PHP:
Sub SPLIT_Fn()
    Dim aTmp
    aTmp = Split("Tach Chuoi Nay")
    ''Mang ket qua aTmp gôm 3 phân tu: "Tach" , "Chuoi" , "Nay"
    MsgBox aTmp(0)
End Sub
PHP:
Sub SPLIT_Fn2()
    Dim aTmp
    aTmp = Split("Day-la-mot-vi-du", "-", 1)    ''Array("Day-la-mot-vi-du")
    aTmp = Split("Day-la-mot-vi-du", "-", 2)    ''Array("Day", "la-mot-vi-du")
End Sub
1.20. JOIN
PHP:
Join(SourceArray,[Delimiter]) 'As String'
Trả về một chuỗi được ghép từ các phần từ của mảng một chiều SourceArray bởi dấu phân cách Delimiter.
SourceArray: Bắt buộc. Là mảng một chiều chứa các chuỗi con cần nối.
Delimiter: Không bắt buộc. Dấu phân cách, là một chuỗi ký tự bất kỳ dùng để phân cách các chuỗi con trong chuỗi kết quả.
- Nếu Delimiter bỏ qua thì giá trị mặc định của nó là một khoảng trống " ".
- Nếu Delimiter là một chuỗi có độ dài bằng 0 ("") thì kết quả là các phần tử của SourceArray được nối liền với nhau, không có dấu phân cách.
PHP:
Sub JOIN_Fn()
    Dim a
    a = Array("A", "B", "C", 1, 2, 3)
    MsgBox Join(a)      '' "A B C 1 2 3"
    MsgBox Join(a, "")  '' "ABC123"
End Sub
1.21. STR
PHP:
STR(Numer) 'As String'
Trả về dạng chuỗi của một số.
PHP:
Sub STR_Fn()
    MsgBox Str(10)
    ''Result: "10" là chuôi, không phai sô 10
End Sub
1.22. STRCOMP
PHP:
StrComp(String1, String2, [Compare As VbCompareMethod = vbBinaryCompare]) 'As Integer'
Trả về kết quả là một số nguyên đại diện cho kết quả so sánh 2 chuỗi
String1, String2: Hai chuỗi đưa vào để so sánh
Compare: Không bắt buộc. Là kiểu so sánh dữ liệu:

Compare.png
Ghi chú:
Nếu String1 bằng String2, hàm StrComp sẽ trả về 0.
Nếu String1 nhỏ hơn String2, hàm StrComp sẽ trả về -1.
Nếu String1 lớn hơn String2, hàm StrComp sẽ trả về 1.
Nếu String1 hoặc String2 là NULL, hàm StrComp sẽ trả về NULL.
PHP:
Sub STRCOMP_Fn()
    MsgBox StrComp("A", "B")        ''Result: -1
    MsgBox StrComp("Toi", "Ban")    ''Result: 1
    MsgBox StrComp("vidu", "vidu")  ''Result: 0
    MsgBox StrComp("AB", "")        ''Result: Null
End Sub
1.23. STRCONV
PHP:
StrConv(String,Conversion As VbStrConv,[LocaleID as Long]) 'As String'
Trả về một chuỗi được chuyển sang chữ hoa, chữ thường, in hoa ký tự đầu mỗi từ hoặc Unicode.
String: Chuỗi đưa vào để chuyển đổi
Conversion: Kiểu chuyển đổi

Str convert.png
LocaleID: Không bắt buộc. Nếu tham số này bỏ qua thì nó lấy địa chỉ của hệ thống.
PHP:
Sub STRCONV_Fn()
    MsgBox STRCONV("chuyen thanh chu hoa", vbUpperCase)
    MsgBox STRCONV("CHU THUONG", vbLowerCase)
    MsgBox STRCONV("Chu nua mua", vbProperCase)
End Sub
1.24. STRREVERSE
PHP:
STRREVERSE(Expression As String) 'As String'
Trả về chuỗi mới với các ký tự có thứ tự đảo ngược.
PHP:
Sub STRREVERSE_Fn()
    MsgBox STRREVERSE("Expression As String")
    ''Result: "gnirtS sA noisserpxE"
End Sub
1.25. TRIM
PHP:
Trim(String) 'As String'
Loại bỏ khoảng trắng ở đầu và cuối của chuỗi.
PHP:
Sub TRIM_Fn()
    MsgBox TRIM("   Loai khoang trang hai dau.     ")
End Sub
1.26. VAL
PHP:
Val(String as String) 'As Double'
Trả về các số được tìm thấy trong một chuỗi.
Lưu ý:
Hàm VAL sẽ ngừng đọc chuỗi khi nó gặp ký tự không phải là số đầu tiên, trừ khoảng trắng Chr(32).
PHP:
Sub VAL_Fn()
    MsgBox Val("1 " & Chr(32) & "2345 la 1 vi du ")
    ''Result: 12345
End Sub
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom