Trong bài viết này, chúng ta sẽ tạo một macro để phân tách văn bản trong ô thành cột theo chiều dọc. Chúng ta có thể phân cách văn bản trong ô dựa trên dấu phân cách. Dấu phân cách có thể là dấu phẩy, dấu cách, dấu gạch chéo ngược, v.v.

Để giải thích hoạt động của macro, chúng tôi đã lấy URL làm văn bản mẫu trong ô A10. Macro có thể được thực hiện bằng cách nhấp vào nút “Gửi”.

ArrowSampleData

Sau khi thực hiện macro, nó sẽ trả về kết quả đầu ra trong cột tiếp theo.

Giá trị văn bản trong ô được phân tách thành nhiều chuỗi con trong nhiều ô trong cột thứ hai.

ArrowAfterRunningMacro

Giải thích logic

Chúng tôi đã tạo một macro “texttocolumns” thực hiện hai tác vụ.

Thứ nhất, nó phân tách chuỗi trong A10 thành nhiều chuỗi con, dựa trên dấu phân cách. Trong ví dụ này, chúng tôi đã sử dụng dấu gạch ngang (-) làm dấu phân cách. Thứ hai, nó duyệt các chuỗi con được tạo từ nhiều cột đến một cột duy nhất.

Giải thích mã

Rng.texttocolumns Đích: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsariesDelimiter: = True, Other: = True, OtherChar _: = “-“

Đoạn mã trên được sử dụng để phân tách chuỗi trong phạm vi “Rng”. Đích chỉ định phạm vi vị trí nơi đầu ra sẽ xuất hiện. DataType chỉ định loại dấu phân cách được sử dụng. TextQualifier chỉ định ký tự được sử dụng cho định tính văn bản. OtherChar chỉ định ký tự được sử dụng làm dấu phân cách.

Vui lòng theo dõi bên dưới để biết mã

Sub texttocolumns()

'Declaring variables

Dim StartRow, i, LastCol As Long

Dim Rng As Range

'disabling the display alerts

Application.DisplayAlerts = False

'Initializing the variable

StartRow = 10

Set Rng = Range("A10")

'Separting the text based on the delimiter

Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _

:="-"

'Finding the column number of cell containing the last string after delimiting

LastCol = Rng.End(xlToRight).Column

'arranging the text in columns to rows

For i = 2 To LastCol

Cells(10, i).Cut Cells(StartRow, 2)

StartRow = StartRow + 1

Next i

End Sub

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]