Chức năng Split trong VBA, xuất hiện lần đầu tiên trong phiên bản Excel 2000, có khả năng khiến việc thực hiện các tác vụ thông thường trở nên đơn giản hơn. Hàm này hỗ trợ tối đa các ký tự chữ dạng string, và trả về kết quả là tổ hợp các biến thể từ số 0, trong đó chứa các thành phần tạo nên ký tự đó (lưu ý bạn nên ghi rõ các ký tự được sử dụng để phân tách các thành phần này với nhau).
Ví dụ minh hoạ đơn giản
Sub SplitDemo() Dim txt As String Dim x As Variant Dim i As Long txt = "The Split function is versatile" x = Split(txt, " ") For i = 0 To UBound(x) Debug.Print x(i) Next i End Sub
Kết quả của lệnh này sẽ được thể hiện ở phần tiếp theo.
Ở đây ta sử dụng dấu cách làm dấu phân tách chính. Bạn có thể sử dụng bất kỳ chữ cái hay ký tự string nào để làm dấu phân tách. Ở những ví dụ sau ta sẽ thấy các cách sử dụng khác của chức năng Split.
Cách trích xuất riêng một ký tự riêng lẻ
Function ExtractElement(str, n, sepChar)
' Returns the nth element from a string, ' using a specified separator character
Dim x As Variant x = Split(str, sepChar) ExtractElement = x(n - 1) Else ExtractElement = "" End If End Function
Đây là cách sử dụng hàm ExtractElement khi lập công thức Excel.
=ExtractElement("546-339-909-944",3,"-")
Công thức này trả về kết quả là số 909, cũng chính là thành phần thứ 3 tạo nên chuỗi ký tự (dấu “-” được sử dụng làm dấu phân tách).
Cách đếm số ký tự
Function WordCount(txt) As Long
' Returns the number of words in a string
Dim x As Variant txt = Application.Trim(txt) x = Split(txt, " ") WordCount = UBound(x) + 1 End Function
Cách chia nhỏ tên đường dẫn của tệp
Function ExtractFileName(filespec) As String
' Returns a filename from a filespec
Dim x As Variant x = Split(filespec, Application.PathSeparator) ExtractFileName = x(UBound(x)) End Function Function ExtractPathName(filespec) As String
' Returns the path from a filespec
Dim x As Variant x = Split(filespec, Application.PathSeparator) ReDim Preserve x(0 To UBound(x) - 1) ExtractPathName = Join(x, Application.PathSeparator) & _ Application.PathSeparator End Function
Với địa chỉ của tệp như trên, hàm ExtractFileName đã tách riêng được tên tệp “budget98.xls” và đường dẫn chứa tệp “c:filesworkbooksarchives”.
Cách đếm số ký tự đặc biệt có trong một chuỗi văn bản
Dựa vào độ dài của chuỗi ký tự chính và chuỗi ký tự con, hàm CountOccurrences sẽ tính được số lần chuỗi ký tự con xuất hiện trong một đoạn chuỗi ký tự chính bất kỳ.
Function CountOccurrences(str, substring) As Long
' Returns the number of times substring appears in str
Dim x As Variant x = Split(str, substring) CountOccurrences = UBound(x) End Function
Cách tìm ký tự dài nhất
Dựa vào nội dung của câu, hàm LongestWord sẽ cho ra kết quả đâu là ký tự dài nhất xuất hiện trong câu.
Function LongestWord(str) As String ' Returns the longest word in a string of words Dim x As Variant Dim i As Long str = Application.Trim(str) x = Split(str, " ") LongestWord = x(0) For i = 1 To UBound(x) LongestWord = x(i) End If Next i End Function Đừng bỏ qua: Khóa học Excel văn phòng tại Hà Nội
Đánh giá bài viết này