Hàm MID VBA | Làm thế nào để sử dụng Hàm MID trong Excel VBA?

Hàm MID trong Excel VBA

Hàm MID VBA 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 nó cũng 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 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?

Bạn có thể tải mẫu hàm VBA MID này tại đây - Mẫu hàm VBA MID

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 () Kết thúc 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 một 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 một 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 

Bước 4: Vì chúng ta đang trích xuất vị trí bắt đầu của tên đầu tiên là 1.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, End Sub 

Bước 5: Độ dài của ký tự bạn có thể nhập trực tiếp là 6 nhưng đây không phải là cách tốt nhất. Để xác định độ dài, chúng ta hãy áp dụng một công thức nữa có tên là hướng dẫn.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName dưới dạng String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (End Sub 

Bước 6: Đối với vị trí bắt đầu này là 1.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName thành String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, End Sub 

Bước 7: Chuỗi 1 là tên của chúng ta, tức là “Ramesh, Tendulkar”.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName thành String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", End Sub 

Bước 8: Chuỗi 2 là gì ngăn cách giữa họ và tên tức là dấu phẩy (,).

Mã:

 Sub MID_VBA_Example2 () Dim FirstName là String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") End Sub 

Lưu ý: Hàm hướng dẫn sẽ trả về có bao nhiêu ký tự trong từ “Ramesh, Tendulkar” từ vị trí chuỗi 1 đến vị trí chuỗi 2 tức là cho đến dấu phẩy (,). Vì vậy, hướng dẫn trả về kết quả là 7 bao gồm cả dấu phẩy (,).

Bước 9: Vì hàm Guide trả về số, của các ký tự bao gồm cả dấu phẩy (,) nên ở đây chúng ta cần trừ đi 1 ký tự. Vì vậy, hãy nhập -1 sau khi đóng chức năng hướng dẫn.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) End Sub 

Bước 10: Bây giờ hiển thị giá trị của biến trong hộp thông báo.

Mã:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", ",") - 1) MsgBox FirstName End Sub 

Bước 11: Chạy mã này bằng phím F5 hoặc bạn có thể chạy mã này theo cách thủ công, chúng ta sẽ nhận được tên đầu tiên trong hộp thông báo.

Đầu ra:

Ví dụ # 3

Bây giờ tôi sẽ giao cho bạn một bài tập để giải quyết. Tôi có một danh sách Tên & Họ.

Từ danh sách này, tôi muốn bạn chỉ trích xuất tên đầu tiên. Tất cả các tốt nhất !!!!.

Ok, Nếu bạn đã thử mà không có kết quả thì đoạn mã dưới đây sẽ giúp bạn điều này.

Mã:

 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 tôi Kết thúc 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 thủ công.

Nó sẽ cho 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.