Hàm MID trong Excel VBA
Hàm VBA MID trích xuất các giá trị từ giữa câu hoặc từ được cung cấp. Hàm MID được phân loại theo hàm Chuỗi và Văn bản và nó là một hàm trang tính, nghĩa là để sử dụng hàm này trong VBA chúng ta cần sử dụng phương thức application.worksheet.
Có những trường hợp chúng ta muốn trích xuất tên, họ hoặc tên đệm. Trong những tình huống đó, công thức danh mục TEXT rất hữu ích để đáp ứng các yêu cầu của chúng tôi. Việc sử dụng hàm này giống như cách sử dụng của tham chiếu trang tính và cú pháp cũng giống nhau.

Cú pháp
Giống như hàm MID trong excel của chúng tôi, trong VBA cũng vậy, nó có một bộ giá trị cú pháp tương tự. Dưới đây là cú pháp.

- Chuỗi để tìm kiếm: Đây không phải là gì ngoài câu của chuỗi là gì, tức là từ chuỗi hoặc từ nào bạn muốn trích xuất các giá trị.
- Vị trí bắt đầu: Từ vị trí nào của câu bạn muốn trích xuất. Đây phải là một giá trị số.
- Số ký tự cần trích xuất: Từ vị trí bắt đầu, bạn muốn trích xuất bao nhiêu ký tự? Đây cũng phải là một giá trị số.
Làm thế nào để sử dụng Hàm MID VBA?
Ví dụ 1
Giả sử bạn có từ “Hello Good Morning” và bạn muốn trích xuất “Good” từ câu này. Làm theo các bước dưới đây để trích xuất giá trị.
Bước 1: Tạo tên macro trước.
Mã:
Sub MID_VBA_Example1 () End Sub

Bước 2: Khai báo một biến là “STRING”.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue làm chuỗi cuối Sub

Bước 3: Bây giờ gán giá trị cho biến này thông qua hàm MID.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue làm chuỗi MiddleValue = Mid (End Sub

Bước 4: Đối số đầu tiên là String, tức là chúng ta muốn trích xuất từ giá trị nào. Vì vậy, giá trị của chúng tôi là “Xin chào buổi sáng tốt lành”.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", End Sub

Bước 5: Tiếp theo là vị trí bắt đầu của ký tự bạn muốn trích xuất. Trong trường hợp này, Chào buổi sáng bắt đầu từ ký tự thứ 7 .
Lưu ý: Dấu cách cũng là một ký tự.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7 End Sub

Bước 6: Độ dài không có gì khác ngoài việc bạn muốn trích xuất bao nhiêu ký tự. Chúng ta cần trích xuất 4 ký tự ở đây vì độ dài của từ “Tốt” là 4 ký tự.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub

Bước 7: Chúng ta đã hoàn thành công thức. Hãy hiển thị kết quả của biến trong hộp thông báo.
Mã:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub

Bước 8: Bây giờ chạy mã này theo cách thủ công hoặc nhấn phím F5, hộp thông báo sẽ hiển thị từ “Tốt”.

Đầu ra:

Ví dụ số 2
Giả sử bạn có họ và tên cùng nhau, và từ đó là “Ramesh, Tendulkar.” Giữa Tên & Họ, ký tự phân tách là dấu phẩy (,). Bây giờ chúng ta chỉ cần trích xuất tên đầu tiên.
Bước 1: Tạo macro và xác định một biến.
Mã:
Sub MID_VBA_Example2 () Dim FirstName làm chuỗi kết thúc Sub

Bước 2: Bây giờ gán giá trị cho biến này thông qua hàm MID.
Mã:
Sub MID_VBA_Example2 () Dim FirstName thành String FirstName = Mid (End Sub

Bước 3: Chuỗi của chúng tôi là “Ramesh.Tendulkar”, vì vậy hãy nhập từ này.
Mã:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", End Sub

Step 4: Since we are extracting the first name starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1, End Sub

Step 5: Length of the character you can directly enter as 6, but this is not the best way. In order to determine the length, let’s apply one more formula called Instr.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr( End Sub

Step 6: For this starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1, End Sub

Step 7: String 1 is our name, i.e., “Ramesh, Tendulkar.”
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar", End Sub

Step 8: String 2 what is the separator of first name & last name, i.e., comma (,).
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar",",") End Sub

Note: Instr function will return how many characters are there in the word “Ramesh, Tendulkar” from the string 1 position to the string 2 positions, i.e., until comma (,). So Instr will return 7 as a result, including comma (,).
Step 9: Since Instr function returns no., of characters including comma (,) we need to minus 1 character here. So enter -1 after the close of Instr function.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) End Sub

Step 10: Now show the value of the variable in the message box.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) MsgBox FirstName End Sub

Step 11: Run this code using the F5 key, or you can run this code manually. We would get the first name in the message box.

Output:

Example #3
Now I will give you one assignment to solve. I have a list of First Name & Last Name.

From this list, I want you to extract the first name only. All the best!!!!.
Ok, If you have tried and not able to get the result, then the below code would help you in this.
Code:
Sub MID_VBA_Example3 () Dim i As Long For i = 2 To 15 Cells (i, 2) .Value = Mid (Cells (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ") - 1) Tiếp theo i End Sub
Sao chép & Dán đoạn mã trên vào mô-đun của bạn. Sau khi sao chép mã, hãy chạy mã này bằng phím F5 hoặc bạn có thể chạy theo cách thủ công.

Nó sẽ cho một kết quả như bên dưới.

Những điều cần ghi nhớ
- Đối số độ dài trong hàm MID là tùy chọn. Nếu bạn bỏ qua điều này, nó sẽ lấy 1 làm giá trị mặc định.
- Để xác định độ dài hoặc vị trí bắt đầu, hãy sử dụng chức năng Hướng dẫn cùng với chức năng MID.