Excel VBA tách chuỗi thành mảng
Chuỗi là một tập hợp các ký tự được nối với nhau, khi các ký tự này được chia và được lưu trữ trong một biến thì biến đó sẽ trở thành một mảng cho các ký tự này và phương pháp chúng tôi sử dụng để tách một chuỗi để tạo thành một mảng là sử dụng hàm SPLIT trong vba chia nhỏ chuỗi trong chuỗi một chiều.
Giống như các trang tính trong VBA, chúng ta có các hàm để xử lý các giá trị Chuỗi hoặc Văn bản. Chúng ta đã rất quen thuộc với các thao tác với chuỗi như trích xuất tên đầu tiên, họ, tên đệm, v.v. Nhưng ý tưởng về việc tách giá trị chuỗi thành các mảng trong VBA thì sao? Vâng, bạn nghe đúng rồi, chúng ta có thể chia câu chuỗi thành mảng bằng cách sử dụng mã VBA và trong bài viết đặc biệt này, chúng tôi sẽ hướng dẫn bạn cách tách chuỗi thành một mảng trong Excel VBA.

Chia chuỗi thành một mảng là gì?
Trước tiên, hãy để tôi làm rõ điều này, "Chuỗi thành Mảng" không là gì ngoài "các phần khác nhau của câu hoặc chuỗi sẽ được chia thành nhiều phần." Ví dụ, nếu câu là "Bangalore là thủ đô của Karnataka", thì mỗi từ là một mảng khác nhau.
Vì vậy, làm thế nào để tách câu này thành mảng là chủ đề của bài viết này.
Làm thế nào để chuyển đổi chuỗi phân tách thành một mảng trong Excel VBA?
Để chuyển đổi chuỗi phân tách thành một mảng trong VBA, chúng ta có một hàm gọi là "SPLIT". Đây là một hàm VBA thực hiện nhiệm vụ chia nhỏ giá trị chuỗi được cung cấp thành các phần khác nhau dựa trên dấu phân cách được cung cấp.
Ví dụ: nếu câu là "Bangalore là thủ đô của Karnataka," khoảng trắng là dấu phân cách giữa mỗi từ.
Dưới đây là cú pháp của hàm SPLIT.

- Giá trị hoặc Biểu thức: Đây là chuỗi hoặc giá trị văn bản mà chúng tôi đang cố gắng chuyển đổi sang mảng bằng cách tách riêng từng phần của chuỗi.
- (Dấu phân cách): Đây không phải là cái gì khác ngoài những thứ phổ biến phân tách từng từ trong chuỗi. Trong câu của chúng tôi “Bangalore là thành phố thủ đô của Karnataka”, mỗi từ được phân tách bằng ký tự khoảng trắng, vì vậy dấu phân cách của chúng tôi là dấu cách ở đây.
- (Giới hạn): Giới hạn không là gì khác ngoài kết quả là bao nhiêu phần chúng ta muốn. Ví dụ trong câu “Bangalore là thủ đô của Karnataka” chúng ta có bảy phần nếu chúng ta chỉ cần ba phần thì chúng ta sẽ nhận được phần đầu tiên là “Bangalore”, phần thứ hai là “là” và phần thứ ba là phần còn lại của câu có nghĩa là "thành phố thủ đô của Karnataka."
- (So sánh): Đây không phải là 99% thời gian được sử dụng, vì vậy chúng ta đừng chạm vào nó tại thời điểm này.
Ví dụ 1
Ok, bây giờ chúng ta hãy xem các ví dụ thực tế.
Bước 1: Xác định biến VBA để giữ giá trị chuỗi.
Mã:
Sub String_To_Array () Dim StringValue làm chuỗi kết thúc Sub

Bước 2: Đối với biến này, hãy gán chuỗi “Bangalore là thủ đô của Karnataka.”
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thủ phủ của Karnatka" End Sub

Bước 3: Tiếp theo, xác định thêm một biến có thể giữ từng phần của giá trị chuỗi ở trên. Về điều này, chúng ta cần lưu ý ở đây là vì câu có nhiều hơn một từ, chúng ta cần xác định biến là “Array” để chứa nhiều hơn một giá trị.
Trong trường hợp này, chúng ta có 7 từ trong chuỗi vì vậy, hãy xác định mảng như sau.
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thành phố thủ phủ của Karnatka" Dim SingleValue () As String End Sub

Bây giờ đối với biến mảng này, chúng ta sẽ sử dụng hàm SPLIT để chia chuỗi thành một mảng trong Excel VBA.
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thủ phủ của Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub

Biểu thức là giá trị chuỗi của chúng ta, tức là, biến đã giữ giá trị chuỗi nên chỉ nhập tên biến.

Dấu phân cách trong chuỗi này là ký tự khoảng trắng vì vậy hãy cung cấp giống nhau.
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thủ phủ của Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") End Sub
Hiện tại, hãy để lại các phần khác của hàm SPLIT.
Hàm SPLIT chia giá trị chuỗi thành 7 phần, mỗi từ được tách riêng theo ký tự khoảng trắng. Vì chúng ta đã khai báo biến “SingleValue” dưới dạng mảng, chúng ta có thể gán tất cả 7 giá trị cho biến này.
Chúng ta có thể viết mã như sau.
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thủ phủ của Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) End Sub
Chạy mã và xem những gì chúng tôi nhận được trong hộp tin nhắn.

Hiện tại, chúng ta có thể thấy từ đầu tiên tức là “Bangalore”, để hiển thị các từ khác, chúng ta có thể viết mã như sau.
Mã:
Sub String_To_Array () Dim StringValue As String StringValue = "Bangalore là thủ đô của Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") MsgBox SingleValue (0) & vbNewLine & SingleValue (1) & vbNewLine (2) & vbNewLine & SingleValue (3) & _vbNewLine & SingleValue (4) & vbNewLine & SingleValue (5) & vbNewLine & SingleValue (6) End Sub
Bây giờ hãy chạy mã và xem những gì chúng ta nhận được trong hộp tin nhắn.

Mỗi từ đã được chia thành các mảng.
Ví dụ số 2
Bây giờ hãy tưởng tượng một tình huống lưu trữ các giá trị này vào các ô, tức là mỗi từ vào một ô riêng biệt. Đối với điều này, chúng ta cần bao gồm vòng lặp FOR NEXT trong VBA.
Đoạn mã dưới đây sẽ chèn từng từ vào các ô riêng biệt.
Sub String_To_Array1 () Dim StringValue As String StringValue = "Bangalore là thành phố thủ phủ của Karnataka" Dim SingleValue () As String SingleValue = Split (StringValue, "") Dim k As Integer Cho k = 1 đến 7 ô (1, k) .Value = SingleValue (k - 1) Tiếp theo k End Sub
Thao tác này sẽ chèn từng từ, như thể hiện trong hình dưới đây.

Những điều cần ghi nhớ
- Mảng và vòng lặp được sử dụng cùng nhau để làm cho mã động.
- Hàm SPLIT yêu cầu dấu phân cách chung, phân tách từng từ trong câu.
- Độ dài mảng bắt đầu từ 0, không phải từ 1.