Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA phân tách các chuỗi.

Tình huống:

Separate Strings in Excel VBA

Đặt một nút lệnh trên trang tính của bạn và thêm các dòng mã sau:

  1. Đầu tiên, chúng ta khai báo một biến có tên đầy đủ của kiểu String, một biến được gọi là hoán vị của kiểu Integer và một biến có tên là i kiểu Integer.

Dim fullname As String, commaposition As Integer, i As Integer

Vấn đề chúng ta đang giải quyết là chúng ta cần cho Excel VBA biết nơi chúng ta muốn tách chuỗi. Trong trường hợp Smith, dấu phẩy của Mike ở vị trí 6 trong khi ở trường hợp Williams, Janet dấu phẩy ở vị trí 9.

  1. Chúng tôi sử dụng một vòng lặp để thực hiện các thao tác trên mỗi tên được nhập trong Excel. Đầu tiên, chúng ta khởi tạo biến fullname. Tiếp theo, chúng ta sử dụng chức năng Guid để tìm vị trí của dấu phẩy.

For i = 2 To 7

fullname = Cells(i, 1).Value

commaposition = InStr(fullname, ",")
  1. Cuối cùng, chúng ta muốn viết phần sau dấu phẩy vào cột B và phần đứng trước dấu phẩy vào cột C. Bạn có thể đạt được điều này bằng cách thêm các dòng:

Cells(i, 2).Value = Mid(fullname, commaposition + 2)

Cells(i, 3).Value = Left(fullname, commaposition - 1)

Mid (fullname, commaposition + 2) nghĩa là chúng ta muốn một phần của tên đầy đủ bắt đầu từ ký tự ‘commaposition + 2’ (đây chính xác là tên).

Left (fullname, commaposition – 1) có nghĩa là chúng ta muốn một phần của fullname bắt đầu từ đầu cho đến ký tự ‘commaposition- 1’ (đây chính xác là họ).

  1. Đừng quên đóng vòng lặp.

Next i
  1. Thêm sáu tên được phân tách bằng dấu phẩy và dấu cách vào Phạm vi (“A2: A7”).

  2. Chạy thử chương trình.

Kết quả:

Separate Strings Result