Hàm tách VBA (Ví dụ) - Làm thế nào để tách chuỗi trong Excel VBA?

Hàm chia VBA trong Excel là gì?

Hàm chia trong VBA là một hàm chuỗi rất hữu ích được sử dụng để chia chuỗi thành nhiều chuỗi con dựa trên dấu phân cách được cung cấp cho hàm và một phương pháp so sánh, có những hàm chuỗi khác cũng chuyển đổi một chuỗi thành chuỗi con nhưng hàm chia có thể chia một chuỗi thành nhiều hơn một chuỗi con.

Trong trang tính bình thường, hàm LEFT, hàm MID và RIGHT trong excel được sử dụng như các hàm văn bản trong excel để trích xuất một phần của câu. Ví dụ trích xuất họ, tên đệm và họ là những trường hợp phổ biến mà chúng ta đã thấy. Nhưng trong VBA, chúng tôi có một chức năng linh hoạt hơn được gọi là SPLIT sẽ thực hiện một công việc tương tự cho bạn. SPLIT là một hàm tích hợp trong Excel VBA có thể tách câu được cung cấp dựa trên dấu phân cách. Ví dụ: nếu bạn muốn chia địa chỉ email thành các phần khác nhau, yếu tố chung trong địa chỉ email là “@” trong tất cả các id email, vì vậy “@” trở thành dấu phân cách ở đây.

Hàm chia chuỗi VBA

Giống như tất cả các hàm khác, tách cũng có cú pháp riêng của nó. Dưới đây là các tham số của hàm Chia chuỗi trong excel VBA.

  • Giá trị hoặc Biểu thức: Đây không là gì ngoài giá trị thực tế mà chúng tôi đang cố gắng phân chia. Ví dụ, nếu bạn muốn tách họ và tên, thì tên đầy đủ là giá trị ở đây.
  • (Dấu phân cách): Phần tử chung để chia Giá trị hoặc Biểu thức là gì? Trong email, Id của “@” là phần tử chung, trong địa chỉ, dấu phẩy (,) là phần tử chung. Nếu bạn bỏ qua điều này, nó sẽ coi ký tự khoảng trắng là giá trị mặc định.
  • (Giới hạn): Số chuỗi con bạn muốn từ Giá trị hoặc Biểu thức bạn đã cung cấp. Ví dụ: nếu giá trị là “Tên tôi là Excel”, nếu bạn cung cấp 3 làm giới hạn, nó sẽ hiển thị kết quả trong ba dòng như “Của tôi”, “tên”, “là Excel”.
  • (So ​​sánh): Vì chúng ta không sử dụng đối số so sánh, hãy bỏ qua đối số tùy chọn này.

Trong phần tiếp theo của bài viết, chúng ta sẽ xem cách sử dụng hàm SPLIT trong excel VBA một cách thực tế.

Ví dụ về hàm chia chuỗi VBA

Dưới đây là các ví dụ thực tế về Hàm tách trong Excel VBA.

Ví dụ số 1 - Tách câu

Split trả về kết quả trong mảng sẽ bắt đầu từ 0. Tất cả các mảng đều bắt đầu từ 0 chứ không phải từ 1.

Giả sử bạn có từ “Tên tôi là Excel VBA” trong ô A1.

Bây giờ bạn muốn chia câu này thành các phần như “Của tôi”, “Tên”, “là”, “Excel”, “VBA”. Sử dụng hàm String VBA SPLIT, chúng ta có thể trả về kết quả này.

Bước 1: Bắt đầu macro với tên.

Mã:

Sub Split_Example1 () End Sub Bước 2: Khai báo ba biến.

Mã:

Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String End Sub

Bước 3: Bây giờ đối với biến đã xác định, Văn bản của tôi sẽ gán từ “Tên tôi là Excel VBA” .

Mã:

Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String MyText = "My Name is Excel VBA" End Sub

Bước 4: Bây giờ đối với biến Kết quả của tôi, hãy áp dụng hàm chia chuỗi VBA.

Mã:

Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String MyText = "My Name is Excel VBA" MyResult = Split (End Sub

Bước 5: Biểu thức là giá trị văn bản của chúng ta. Vì chúng tôi đã gán giá trị văn bản của mình cho biến Văn bản của tôi, hãy nhập đối số này vào đây.

Mã:

Sub Split_Example1 () Dim MyText As String Dim i As Integer Dim MyResult () As String MyText = "Tên tôi là Excel VBA" MyResult = Split (MyText) End Sub

Lưu ý: Như trên bây giờ bỏ qua tất cả các tham số khác.

Bước 6: Vì vậy, bây giờ Kết quả của tôi giữ kết quả phân tách này. Như tôi đã nói trước đó trong bài đăng, hàm phân tách lưu trữ kết quả dưới dạng một mảng vì vậy ở đây

  • Kết quả của tôi (0) = “Của tôi”
  • Kết quả của tôi (1) = “Tên”
  • Kết quả của tôi (2) = “là”
  • Kết quả của tôi (3) = “Excel”
  • Kết quả của tôi (4) = “VBA”

Mặc dù mã này không thực hiện bất kỳ tác động nào để bắt đầu chức năng SPLIT, chúng tôi có thể sử dụng mã này.

Ví dụ # 2 - Chuỗi VBA SPLIT với hàm UBOUND

Để lưu kết quả của hàm SPLIT, chúng ta có thể sử dụng hàm vba UBOUND cùng với hàm SPLIT.

UBOUND sẽ trả về độ dài tối đa của mảng. Trong ví dụ trên, độ dài tối đa của mảng là 5.

Lấy cùng một từ “Tên tôi là Excel VBA”. Hãy tách từ này và lưu trữ từ ô A1 trở đi.

Step 1: Let’s continue from where we left off in the previous example.

Step 2: Now apply FOR NEXT LOOP in VBA from 0 to maximum length of the array i.e. UBOUND.

The reason we started from zero because SPLIT will store the result from zero, not from 1.

Step 3: Now apply VBA CELLS property and store the result.

Code:

Cells(i + 1, 1).Value = MyResult(i)

Step 4: Run this code, we would have split values.

Complete Code:

Sub Split_Example1() Dim MyText As String Dim i As Integer Dim MyResult() As String MyText = "My Name is Excel VBA" MyResult = Split(MyText) For i = 0 To UBound(MyResult) Cells(i + 1, 1).Value = MyResult(i) Next i End Sub

Return Word Count

We can also show the total number of words in the supplied value. Use the below code to show the total number of word counts. Code:

Sub Split_Example2() Dim MyText As String Dim i As Integer Dim MyResult() As String MyText = "My Name is Excel VBA" MyResult = Split(MyText) i = UBound(MyResult()) + 1 MsgBox "Total Words Count is " & i End Sub

Copy and paste the above VBA code and run it, the message box will return the result.

Things to Remember

  • If the delimiter is not supplied SPLIT automatically thinks the delimiter as space.
  • If you want to split except space then you need to specify the delimiter in double-quotes.
  • SPLIT stores the result as array results.
  • UBOUND function returns the maximum length of the array.

Recommended Articles

Đây là một hướng dẫn về Hàm tách VBA. Ở đây, chúng tôi đã học cách sử dụng Hàm chia chuỗi VBA trong Excel cùng với một số ví dụ thực tế và mẫu excel có thể tải xuống. Dưới đây là một số bài viết hữu ích về excel liên quan đến VBA -

  • Làm thế nào để kích hoạt RegEx trong VBA?
  • Hàm StrComp trong Excel VBA
  • Đối tượng VBA WorkBook
  • Hàm Sleep VBA trong Excel
  • Tạo bảng tổng hợp trong Excel VBA
  • Do Until Loop trong VBA
  • Chọn ô trong VBA
  • Chức năng trang tính trong VBA
  • Chỉ số phụ nằm ngoài phạm vi

thú vị bài viết...