Lấy những kí tự trong một chuỗi mà có thể định nghĩa được

Chúng tôi hướng dẫn các bạn tạo Macro có tên là MyExtract lấy những kí tự ra khỏi một chuỗi có thể định nghĩa được .
Bên dưới là Macro mà bạn nên Copy trực tiếp vào Excel
 
Function MyExtract(MyText As String, ItemNo As Integer, FrontOrBack As String, Optional MySeparator As String) As String

Dim LenText As Integer, n As Integer, CountSpaces As Integer
Dim MySt As Integer, MyFin As Integer, MyStep As Integer, Mk1 As Integer, Mk2 As Integer

If Len(MySeparator) = 0 Then MySeparator = " "

LenText = Len(MyText)
If LenText < 3 Then
MyExtract = "*"
GoTo MyEndBit
End If

If UCase(FrontOrBack) = "F" Then
MySt = 2
MyFin = LenText - 1
MyStep = 1
Else
MyFin = 2
MySt = LenText - 1
MyStep = -1
End If

For n = MySt To MyFin Step MyStep
If Mid(MyText, n, 1) = MySeparator Then
CountSpaces = CountSpaces + 1
If CountSpaces = ItemNo - 1 Then Mk1 = n
If CountSpaces = ItemNo Then Mk2 = n
End If
Next n

If CountSpaces = 0 Then
MyExtract = "*"
GoTo MyEndBit
End If

If UCase(FrontOrBack) = "B" Then
n = Mk1
Mk1 = Mk2
Mk2 = n
End If

If Mk2 = 0 Then Mk2 = LenText + 1
Mk1 = Mk1 + 1

MyExtract = Mid(MyText, Mk1, Mk2 - Mk1)
MyEndBit:
End Function
 
Cách thức sử dụng như sau
 
  • Ví dụ tại ô A1 bạn có chuỗi kí tự sau " Cộng hoà xã hội "
  • Nếu bạn muốn lấy "xã" trong chuỗi kí tự đó thì bạn dùng như sau

=MyExtract (A1,2,"B"," " )

2 : ở đây là chuỗi kí tự thứ 2
"B" : là lấy tính từ phía sau
" " : là dấu phân cách trong chuỗi kí tự
  • Bạn cũng có thể lấy chuỗi này theo hàm

=MyExtract (A1,3,"F"," " )

3: là chuỗi kí tự thứ 3
"F" : lấy chuỗi kí tự bắt đầu từ phía trước
 
Dấu phân cách có thể là dấu "," hoặc ";" và có thể định nghĩa trước
 
\"\"