Hướng dẫn này sẽ trình bày cách sử dụng hàm Mid VBA để trích xuất các ký tự từ giữa chuỗi văn bản.
Chức năng giữa
Hàm Mid Nhận n ký tự
Hàm VBA Mid trả về n ký tự từ một chuỗi bắt đầu từ vị trí m:
123456789 | Sub MidExample_1 ()MsgBox Mid ("ABCDEFGHI", 4, 1) 'Kết quả là: "D"MsgBox Mid ("ABCDEFGHI", 4, 2) 'Kết quả là: "DE"MsgBox Mid ("ABCDEFGHI", 4, 50) 'Kết quả là: "DEFGHI"MsgBox Mid ("ABCDEFG hI", 6, 1) 'Kết quả là: "F"MsgBox Mid ("ABCDEFG hI", 6, 2) 'Kết quả là: "FG"MsgBox Mid ("ABCDEFG hI", 6, 4) 'Kết quả là: "FG h"Kết thúc Sub |
Hàm Mid Nhận n ký tự trong một biến
Như được hiển thị ở trên, bạn có thể xác định một chuỗi đơn giản bằng cách nhập văn bản được bao quanh bởi dấu ngoặc kép. Nhưng Hàm MID cũng sẽ hoạt động với các biến chuỗi. Các ví dụ này sẽ trích xuất n ký tự từ một chuỗi bắt đầu từ vị trí m.
12345678 | Sub MidExample_2 ()Dim StrEx As String 'Xác định một biến chuỗiStrEx = "ABCDEFGHI"MsgBox Mid (StrEx, 2, 1) 'Kết quả là: "B"MsgBox Mid (StrEx, 2, 2) 'Kết quả là: "BC"MsgBox Mid (StrEx, 2, 50) 'Kết quả là: "BCDEFGHI"Kết thúc Sub |
Chức năng giữa Lấy n ký tự từ một ô
Các chuỗi có thể được định nghĩa trong mã VBA nhưng bạn cũng có thể sử dụng các giá trị từ các ô. Đọc giá trị của một ô, giữ nó trong một biến chuỗi và trích xuất n ký tự từ giá trị Ô bảng tính đó bắt đầu từ vị trí m.
1234567891011 | Sub MidExample_3 ()Dim StrEx As String 'Xác định một biến chuỗi'Đọc giá trị của ô A1 trong trang tính Sheet1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Phạm vi ("A1"). Giá trị'Đối với ví dụ này, giá trị của ô A1 là "Cầu mong Thần lực ở bên bạn"MsgBox Mid (StrEx, 4, 6) 'Kết quả là: "the F" (Lưu ý khoảng trắng ở đầu)MsgBox Mid (StrEx, 2, 8) 'Kết quả là: "ay the F"MsgBox Mid (StrEx, 3, 4) 'Kết quả là: "y th"Kết thúc Sub |
Hàm giữa Thay thế n ký tự
Trong các ví dụ trên, hàm Mid không thay đổi chuỗi ban đầu. Nó đã trả lại một phần của nó, giữ nguyên chuỗi ban đầu. Hàm Mid có thể được sử dụng để thay thế các ký tự trong một chuỗi.
12345678910111213141516171819202122 | Sub MidExample_4 ()Dim StrEx As String 'Xác định một biến chuỗiSub MidExample_4 ()Dim StrEx As String 'Xác định một biến chuỗiStrEx = "Cầu mong Thần lực ở bên bạn"Giữa (StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'Kết quả là: "Mong Vhe Horce ở bên bạn"'Hàm Mid tìm thấy vị trí 5 và thay thế 1 ký tự trong chuỗi ban đầuStrEx = "Cầu mong Thần lực ở bên bạn"Giữa (StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'Kết quả là: "Mong VWX Horce ở bên bạn"'Hàm Mid tìm thấy vị trí 5 và thay thế 3 ký tự trong chuỗi ban đầuStrEx = "Cầu mong Thần lực ở bên bạn"Giữa (StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'Kết quả là: "Mong VWXYZorce ở bên bạn"'Mid Function tìm thấy vị trí 5 và cố gắng thay thế 8 ký tự.'"VWXYZ" chỉ có 5 ký tự, vì vậy chỉ có 5 ký tự được thay thế.Kết thúc Sub |
Chức năng giữa Trích xuất từ thứ hai từ một cụm từ
Chúng ta có thể sử dụng chức năng VBA Mid với chức năng Hướng dẫn VBA để lấy từ thứ hai trong văn bản.
Hàm VBA InStr có thể trả về vị trí của một ký tự bên trong văn bản.
1 | InStr ("Hai từ", "") 'Kết quả là 4 |
Chúng ta có thể sử dụng InStr để tìm khoảng trắng đầu tiên, sau đó chúng ta có thể sử dụng lại InStr bắt đầu tìm kiếm sau khoảng trắng đầu tiên để tìm khoảng trắng thứ hai trong văn bản. Cuối cùng, chúng ta có thể sử dụng hàm Mid để trích xuất từ vì chúng ta biết vị trí bắt đầu của từ thứ hai và độ dài của nó (sự khác biệt giữa hai vị trí khoảng trắng).
12345678910111213141516171819202122232425 | Sub MidExample_5 ()Dim StrEx As String 'Xác định một biến chuỗiDim StartPos dưới dạng số nguyênLàm mờ EndPos thành số nguyênDim SecondWord dưới dạng chuỗiStrEx = "James Earl Jones là một diễn viên"StartPos = InStr (StrEx, "")'Kết quả là 6'Tìm vị trí của khoảng trắng đầu tiênEndPos = InStr (StartPos + 1, StrEx, "")'Kết quả là 11'Tìm vị trí của khoảng trắng thứ hai bằng cách bắt đầu tìm kiếm sau khoảng trắng đầu tiênSecondWord = Mid (StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid trích xuất các ký tự bắt đầu sau khoảng trắng đầu tiên (StartPos +1)'Mid cũng sử dụng độ dài của từ thứ hai.'Đó là sự khác biệt giữa các vị trí dấu cách -1MsgBox SecondWord'Kết quả là EarlKết thúc Sub |