Để tách ký tự đầu, cuối hay chỉ định trong Excel, chúng ta hay sử dụng các hàm có sẵn như Left, Right, Mid. Vậy khi thao tác dữ liệu bằng VBA, làm sao bạn có thể tách được chuỗi?.
Thực ra, VBA cũng có các hàm như Left, Right, Mid với chức năng tương tự và bạn có thể tùy biến tách chuỗi theo nhiều cách. Và trong bài viết này mình sẽ chia sẻ với các bạn.
Nội dụng bài viết:
- Hàm Left
- Hàm Right
- Hàm Mid
- Sử dụng hàm Len với Left, Right, Mid
Hàm Left
Được dùng để tách chuỗi từ bên trái qua phải theo số lượng ký tự được chỉ định.
Cú pháp:
Left(String, Length As Long)
Trong đó:
- String: văn bản cần tách.
- Length As Long: độ dài chuỗi cần tách và được định dạng kiểu dữ liệu Long.
*Vị trí ký tự đầu tiên trong VBA là 1.
Ví dụ:
Sub ham_Left() Dim chuoi As String chuoi="VBA Excel 2013" MsgBox Left(chuoi, 3) End Sub
Kết quả: chạy hàm sẽ tách được “VBA” ra khỏi chuỗi.
Hàm Right
Được dùng để tách chuỗi từ bên phải qua trái theo số lượng ký tự được chỉ định.
Cú pháp:
Right(String, Length As Long)
Ví dụ:
Sub ham_Right() Dim chuoi As String chuoi="VBA Excel 2013" MsgBox Right(chuoi, 4) End Sub
Kết quả: chạy hàm sẽ tách được “2013” ra khỏi chuỗi.
Hàm Mid
Được dùng để tách chuỗi từ một vị trí bất kỳ theo số lượng được chỉ định.
Cú pháp:
Mid(String, Start As Long,[Length])
Trong đó:
- Start As Long: vị trí bắt đầu tách chuỗi.
- Length: độ dài chuỗi cần tách.
Ví dụ:
Sub ham_Mid() Dim chuoi As String chuoi="VBA Excel 2013" MsgBox Mid(chuoi, 5,5) End Sub
Kết quả: chạy hàm sẽ tách được “Excel” ra khỏi chuỗi.
Cách sử dụng hàm Len với các hàm Left, Right, Mid
Hàm Len là hàm lấy độ dài (số ký tự, bao gồm cả khoảng trắng) của chuỗi. Được sử dụng khá nhiều với các hàm kể trên, vì nó giúp linh động xác định được độ dài chuỗi cũng như vị trí bắt đầu.
Cú pháp:
Len(Expression)
Trong đó:
- Expression là một chuỗi, định dạng kiểu String hay Var.
Ví dụ 1: Tách “Microsoft” từ chuỗi “Microsoft Excel 2013”
Sub tachchuoi1() Dim chuoi as String chuoi = "Microsoft Excel 2013" MsgBox Left(chuoi, Len("Microsoft")) End Sub
Kết quả trả về là “Microsoft”.
*Vậy lợi ích của hàm Len chính là tự động xác định được chuỗi cần tách mà bạn không cần phải biết trước số ký tự của một chuỗi.
Ví dụ 2: Tách “Excel” từ chuỗi “Microsoft Excel 2013”
Sub tachchuoi2() Dim chuoi As String chuoi = "Microsoft Excel 2013" MsgBox Mid(chuoi, Len("Microsoft") + 2, Len("excel")) End Sub
Phân tích: trong hàm Mid(chuoi, Len(“Microsoft”) + 2, Len(“excel”)) bạn để ý: Len(“Microsoft”) = 9, vì vậy để bắt đầu tại vị trí ký tự của chữ tiếp theo bạn cần cộng thêm 2.
Kết quả trả về là “Excel”.
Ví dụ 3: Tách “2013” bằng hàm Mid từ chuỗi “Microsoft Excel 2013”
Sub tachchuoi3() Dim chuoi As String chuoi = "Microsoft Excel 2013" MsgBox Mid(chuoi, Len("Microsoft Excel") + 2) End Sub
Phân tích: hàm Mid trên không khai báo số ký tự cần tách, như vậy nó sẽ tách chuỗi từ vị trí chỉ định đến cuối chuỗi. Với cách này bạn có thể áp dụng thay cho hàm Right.
Kết quả trả về là “2013”.
Như vậy, bạn đã tìm hiểu qua cách sử dụng các hàm tách chuỗi như Left, Mid, Right và sử dụng Len để linh động xác định vị trí chuỗi cần tách.
Chúc bạn vui!